Keyboard Tester

Test every key on your keyboard with a live on-screen layout.

Press any key on your keyboard — it lights up here as you press it, and stays marked once tested.

About this tool

Test every key on your keyboard right in the browser — press a key and it highlights on the on-screen layout and turns green once confirmed working, so you can quickly spot a dead, sticky, or misbehaving key. Nothing is recorded or sent anywhere; key events are read locally just to update the display.

Why test a keyboard this way. The most common uses are buying a used mechanical keyboard and wanting to confirm every switch actually registers before the return window closes, diagnosing a specific key that feels "off" after a spill or years of use, and checking a new keyboard for manufacturing defects. Because the layout tracks physical key position rather than what character gets typed, it also works for testing a keyboard through a KVM switch or remote-desktop session where OS-level shortcuts might otherwise interfere.

Key code vs. key character. Every key press fires two different pieces of information: event.code, a fixed identifier for the physical key's position (like KeyA or Digit1) that never changes regardless of layout or language, and event.key, the actual character or action your OS layout maps to that position (which does change — the same physical key produces "A" on QWERTY and "Q" on AZERTY). This tool highlights keys by position (code) so the on-screen layout stays accurate for any keyboard layout, while "Last key pressed" shows the character (key) so you can see what your layout actually produces.

Rollover and ghosting. Cheaper keyboards use a matrix circuit that can't always detect certain combinations of three or more simultaneous key presses — a limitation called "ghosting," where a phantom key registers, or key presses simply get dropped. Gaming and mechanical keyboards advertise "n-key rollover" (NKRO) specifically to avoid this. To check your own keyboard's rollover, hold down several keys at once (as in a game's common WASD+Shift+Space combo) and watch whether the "Keys tested" count and highlights keep up with everything you're pressing, or whether some presses go unregistered.

To test other input hardware, see the mouse tester, gamepad tester, or touchscreen tester.

Frequently asked questions

Why does the layout show US QWERTY even though I use a different layout?
The on-screen layout is based on physical key position (via the keyboard event's code, not key), so it matches where keys actually are on most keyboards regardless of what characters your OS layout types — a key still highlights correctly even on an AZERTY or Dvorak layout.
Some browser shortcuts didn't trigger while testing — why?
Most shortcuts (like Ctrl+T for a new tab) still work as usual. The exceptions are F5, F11, F12, and Ctrl/Cmd+R — those are deliberately blocked on this page since their default action (reload, fullscreen, devtools) would otherwise wipe out everything you've tested so far, right as you're trying to test that very key.
A key isn't lighting up at all — is it broken?
If pressing a key produces no highlight or "last key pressed" update at all, the browser isn't receiving any signal from it — that's a strong sign of a hardware issue (a dead key or a loose connection) rather than something this page can fix.
What's the difference between "Key code" and "Last key pressed"?
"Last key pressed" is the character your layout produces (what event.key reports); "Key code" is the fixed physical position identifier (event.code) that stays the same no matter your OS keyboard layout or language settings.
How do I test for ghosting or rollover limits?
Hold down several keys at once — a common test is a WASD+Shift combination, or as many keys as you can physically reach — and check whether every key you're pressing lights up and gets counted. If some presses are silently dropped while others register, your keyboard's matrix has a rollover limitation at that key combination.
Does this work with external keyboards on a phone or tablet?
Yes — any keyboard sending standard key events to the browser, wired or Bluetooth, will register here the same way a laptop or desktop keyboard does.