Your files never leave your device. All processing happens locally in your browser.
How do I test my keyboard in the browser?
Open AnyTool Keyboard Tester, click the page once to give it focus, then press every key. Each key lights up coral while it is held and turns teal once it has registered, so any key that never lights is a dead-key suspect. The Last key panel shows the JavaScript event.key, the physical event.code, the legacy keyCode and the key location, while a timestamped log records every keydown and keyup so you can catch chatter or a key that won’t release. Hold several keys at once to test N-key rollover and ghosting — the tool tracks the maximum number that register simultaneously. A full ANSI layout with the function row, number row, QWERTY rows, modifiers, arrows, navigation cluster and a numeric keypad is matched by physical key code, so the right key lights on any layout. Everything runs locally — your keystrokes are never logged or uploaded — and Reset clears the tested state and log.
Find dead keys: press every key — anything that never lights up is suspect
Live key code read-out: event.key, event.code, keyCode and key location
N-key rollover & ghosting check — tracks how many keys register at once
100% client-side: keystrokes are never logged, recorded or uploaded
What is
Keyboard Tester
A keyboard tester confirms that every key on your keyboard registers and shows the data each key sends. A browser-based tester listens to native keydown and keyup events, lights up an on-screen key when its physical event.code matches, marks it as tested, and reports the event.key, event.code and legacy keyCode. Holding several keys at once reveals N-key rollover or ghosting, and a press log captures the timing of each event — all processed in your browser, with no app and nothing logged or uploaded.
No. Keystrokes are processed entirely in your browser using native keydown and keyup events, and nothing is logged, recorded, transmitted or uploaded. As a courtesy, never type a real password into any test tool.
Everything happens locally. The tester adds keydown and keyup listeners to the window, reads each event’s key, code, keyCode and location, and updates the on-screen layout — there is no server, no account and no keystroke history kept after you leave the page or press Reset. Nothing is transmitted. As a sensible precaution, you should never type a real password or other secret into any online test tool; to check those keys, press them as part of a harmless word instead. Pressing Reset clears the tested state and the press log immediately.
Press every key once. Each key lights coral while held and turns teal once it registers; any key that never turns teal is a dead-key suspect. A tested-count bar shows how much of the board you’ve covered.
The tester keeps two sets of keys: the ones currently held (highlighted coral) and the ones that have ever registered (marked teal). To find a dead key, press every key on your keyboard once and watch which ones never light up — those are the suspects. A “X / Y keys tested” counter and progress bar show your coverage, and the timestamped press log helps spot a key that chatters (registers twice), repeats unexpectedly, or never sends a keyup (appears stuck). Each on-screen key is matched by its physical event.code rather than its printed legend, so the correct key lights up regardless of your keyboard layout.
Hold several keys at once. The tester tracks the maximum number registering simultaneously — if keys drop out as you add more, that’s ghosting; a true N-key rollover keyboard registers them all.
Ghosting is when a keyboard fails to register some keys while several are held together; N-key rollover (NKRO) means every key registers no matter how many others are down. The tester maintains a set of currently-pressed keys and records the largest size that set reaches, shown as a “max keys at once” figure with a live count of how many you’re holding right now. Press and hold a handful of keys (try a few in the same area) and watch whether they all light up — if some never appear, that combination is ghosting. Note that the figure is also limited by how the browser delivers events and by combinations the OS intercepts, so it shows whether keys register rather than measuring switch quality.
Some keys and combos are captured by your OS or browser before they reach the page — the Win/Cmd key, some F-keys, Print Screen and shortcuts like Alt+Tab or F5. That’s the system intercepting them, not a broken key.
A browser tester only sees the events that actually reach the web page. Your operating system and browser capture certain keys and combinations first — the Windows/Command key, some function keys, Print Screen, media keys and shortcuts such as Ctrl/Cmd+W, Alt+Tab, F5 and F11 — so those may not light up here even though the switch works fine; for them, use an OS-level key viewer. The tester deliberately suppresses the default action only for keys that would otherwise scroll the page or trigger quick-find (Space, the arrows, Tab, “/” and Backspace) so it doesn’t fight the browser or trap you, and Escape always releases focus. This tool checks whether keys register, not switch feel, actuation force or latency.
Detailed Explanation
⚙️Methodology
How the Keyboard Tester Reads Every Key
AnyTool Keyboard Tester runs entirely on native DOM keyboard events — window keydown and keyup listeners — with no library, CDN, upload or media access. Each on-screen key is keyed by event.code, the physical, layout-independent identifier (KeyA, ShiftLeft, Numpad7), so the right key lights up whatever legend is printed on a UK, DE or FR keyboard. keydown adds the code to a currentlyPressed set (highlighted coral) and a permanent everTested set (marked teal once it has registered), so pressing every key reveals dead-key suspects as the ones that never light. The size of the pressed set is tracked as a running maximum for the N-key-rollover / ghosting read-out, auto-repeat keydowns (e.repeat) are ignored for the log so a held key is recorded once, and a window blur handler clears the pressed highlight if focus leaves mid-chord (Alt+Tab / Cmd+Tab) so keys never appear stuck. The last event feeds an info panel showing event.key, event.code, the legacy keyCode and the key location (Standard / Left / Right / Numpad).
window keydown / keyup listeners — pure DOM events, no media, no upload
event.code keys the on-screen layout, so it is layout-independent
currentlyPressed set (coral) + everTested set (teal) → find dead keys
Max size of the pressed set drives the N-key rollover / ghosting figure
e.repeat ignored for the log; window blur clears the pressed highlight
📖How It Works
Layout, Key Codes, Rollover and the Press Log
The tool renders a full ANSI layout — function row, number row, QWERTY rows, modifiers, the arrow keys, a navigation/editing cluster (Insert, Home, Page Up/Down, Delete, End) and a complete numeric keypad — with a Full and a Compact view toggle. A tested-count progress bar shows “X / Y keys tested” so you can measure how much of the board you have covered, and keys that register but are not drawn on the layout (such as media keys) are listed separately as proof they work. The Last key panel surfaces event.key, event.code, keyCode and location for the most recent press; a timestamped press log records every keydown (▼) and keyup (▲) so you can spot chatter, unexpected repeats or a key that never sends a keyup. The rollover panel shows the maximum number of keys seen at once plus how many are held right now. Reset clears the tested state, the log and the rollover record; the same Reset and tested-count appear in a sticky mobile bar.
Full ANSI layout incl. nav cluster + numeric keypad, with Full / Compact views
Tested-count progress bar (X / Y) and an off-layout “also registered” list
Last key panel: event.key, event.code, keyCode and location
Timestamped press log of every keydown / keyup to catch chatter or stuck keys
Rollover panel: max simultaneous keys + a live held-now count; Reset clears all
⚠️Limitations
Privacy and Honest Limits
Because every keystroke is handled by in-browser keydown / keyup listeners, your keystrokes are never logged, recorded, transmitted or uploaded — there is no server, no account and no history kept after you leave the page or press Reset. As a courtesy, you should never type a real password into any online test tool; press those keys as part of a harmless word instead. Honestly, a browser tester only sees events that reach the page: the Windows/Command key, some F-keys, Print Screen, media keys and OS/browser shortcuts (Ctrl/Cmd+W, Alt+Tab, F5, F11) are often intercepted by the operating system or browser first, so a key that does not light up here may be intercepted rather than broken — use an OS-level key viewer for those. The tester suppresses the default action only for keys that would otherwise scroll the page or open quick-find (Space, the arrows, Tab, “/”, Backspace) so it never fights the browser or traps you, and Escape always releases focus. The rollover number is likewise bounded by how the browser delivers events; this tool checks whether keys register, not switch feel, actuation force or latency, and the labels are US ANSI while each key is matched by physical event.code.
Keyboard Tester: in-browser (AnyTool) vs typical online testers
Capability
AnyTool
Typical online testers
Visual layout
Full ANSI + nav cluster + numeric keypad
Often main block only
Key matching
By physical event.code (layout-independent)
Often by character / keyCode
Key codes shown
event.key, event.code, keyCode, location
Sometimes keyCode only
Dead-key hunt
Permanent tested state + X/Y progress bar
Sometimes momentary highlight
Rollover / ghosting
Tracks max keys registering at once
Sometimes none
Press log
Timestamped keydown / keyup history
Varies
Privacy
Keystrokes never logged or uploaded
Usually local, varies
AnyTool reads native keydown / keyup events entirely in your browser; keystrokes are never logged, recorded or uploaded, and Reset clears the tested state and log.