Keyboard Tester

Free online keyboard tester. Press any key to see it light up, find dead or stuck keys, check n-key rollover and ghosting, and measure key repeat.

Click the keyboard below (or press Tab until it is outlined), then press keys on your physical keyboard. Held keys turn blue; keys you have tested turn green. Untested keys stay white.

Keys the browser or OS may reserve and not report here: Fn (never leaves the keyboard), the Windows/Command key on some browsers, Print Screen on macOS, media and volume keys, and Ctrl+W / Ctrl+T style shortcuts that the browser handles before the page sees them. Everything else is captured and its default action (scrolling, reloading, tabbing) is blocked while the tester is focused.

0keys tested
0keys untested
0total presses
0keys not on this layout

Last key

Key (character)
Code (physical)
keyCode (legacy)
Location
Repeat
Modifiers

Untested keys on this layout

All keys untested.

Rollover and ghosting test

Hold down as many keys as you can at once. The tester counts how many the browser reports as held simultaneously. Try a cluster like QWEASD plus Shift, then try adding more.

0held right now
0max simultaneous
rollover class seen

Reading the result: 2 or fewer held keys means 2KRO; up to 6 means 6KRO (the USB boot-protocol limit many boards default to); more than 6 is NKRO. If a key you press while others are held does not light up, that combination is being blocked (anti-ghosting). If a key you did not press lights up, that is ghosting. Modifier keys are sometimes counted separately by the keyboard, so try both with and without Shift/Ctrl. The count resets if the window loses focus, because the browser stops receiving keyup events.

Key repeat and press timing

Hold any letter key for two seconds. The tester measures the delay before the first auto-repeat and the repeat rate, which come from your operating system settings, and the total time the key was held. Tap a key quickly to check for double-registration (chatter).

repeat delay (ms)
repeat rate (chars/s)
last hold (ms)
0possible chatter events
Press and release keys to see timings here.

Honest caveat: a browser cannot measure switch latency. The timestamps above are taken after the keyboard firmware, USB or Bluetooth polling, the operating system, and the browser have each added their own delay, so hold durations carry a few milliseconds of noise and none of it reflects how fast the switch itself actuates. What it can show reliably: whether the OS repeat delay and rate match your settings, whether a single tap produces two keydown events (chatter, flagged when two non-repeat presses of the same key arrive within 40 ms), and whether keyup events arrive at all.

How to use this keyboard tester

Click anywhere on the virtual keyboard so it takes focus, then work across your physical keyboard row by row. Each key you press is highlighted while it is held and turns green once it has been released, so at the end you can see at a glance which keys never registered. The counter above the keyboard tells you how many keys are still untested and lists them by name. Pick the layout that matches your keyboard first: ANSI is the standard US layout with a wide Enter key, ISO is the UK and European layout with a tall Enter and an extra key next to the left Shift, and the 60% view hides the function row, navigation cluster, and numpad for compact boards. Laptops and tenkeyless boards can hide the numpad with the checkbox.

The "last key" panel shows exactly what the browser received: key is the character or action the operating system produced (which depends on your language layout), code is the physical key position, keyCode is the legacy numeric value some older software still uses, and location tells left from right for modifiers and separates numpad keys from the main block. If repeat shows true, the event was generated by the OS auto-repeat rather than a new press.

What the results mean

A key stays white after pressing it. The browser received nothing. Try it in a text editor too. If it fails everywhere, it is a hardware, firmware, or driver problem (see below). If it works in the editor but not here, the key is probably reserved by the browser or OS.

A key lights up but the wrong character appears. Your OS keyboard layout does not match the printed keycaps. This is a settings issue, common after a Windows update or when a second language was added. Check the language bar or Input Sources.

A single tap counts as two presses. That is switch chatter, or "key bounce", and it is flagged in the timing section. It is the most common failure on mechanical keyboards as they age.

A key stays blue after you let go. The keyup event never arrived. Either the switch is physically stuck, or the OS swallowed the keyup (this happens with the Windows key and with Alt+Tab combinations, and is not a fault).

Held-key count tops out at 6. Your keyboard is in 6KRO mode. Many boards ship this way for compatibility with BIOS screens and let you toggle NKRO with a key combination; check the manual.

How to fix a key that does not register

  1. Clean under the keycap. Crumbs, hair, and dried liquid are the number one cause. Pull the keycap (a wire puller for mechanical boards, gently with a plastic tool on laptops), blow out debris with compressed air, and wipe the stem with isopropyl alcohol. For a switch that registers intermittently, a few drops of contact cleaner into the switch housing while pressing it repeatedly often revives it.
  2. Check Fn lock and modes. If the F-keys or a block of letters behave as media keys or numbers, look for an Fn Lock indicator (often Fn+Esc) or a Num Lock light on compact laptops that overlay a numpad on the letter keys. Gaming boards also have a "game mode" that disables the Windows key.
  3. Check keyboard software remaps. Manufacturer utilities (Logitech G Hub, Razer Synapse, Corsair iCUE, SteelSeries GG, Keychron VIA) can remap or disable keys per profile. Close them or reset the profile to default and test again. Windows PowerToys Keyboard Manager and macOS Karabiner also remap keys silently.
  4. Try another port and cable. Move the keyboard to a different USB port, ideally directly on the computer rather than through a hub or monitor. For detachable cables, swap the cable. For wireless boards, replace the batteries and re-pair.
  5. Update or reinstall the driver and firmware. In Windows Device Manager, uninstall the keyboard under "Keyboards" and reboot to let Windows reinstall it. Check the manufacturer's site for a firmware update, which fixes chatter on several popular mechanical boards.
  6. Reset a mechanical board. Most programmable boards have a factory reset combination (commonly holding Fn+Esc or Fn+Space for several seconds, or a reset switch under the spacebar). This clears bad remaps, stuck layers, and rollover modes.
  7. Swap the switch. On hot-swappable boards, pull the dead switch and fit a spare, or swap it with a rarely used key to confirm the switch rather than the PCB is at fault. Soldered boards need desoldering or a service visit.

Stuck and chattering keys

A stuck key reports keydown and never keyup, so the character repeats endlessly or a modifier stays engaged. Usually the keycap is jammed against its neighbour or the switch stem is gummed with residue; cleaning fixes most cases. A chattering key sends two or three presses for one tap. On mechanical switches it is caused by worn or contaminated contacts producing an unstable signal that the debounce routine fails to filter. Some firmware (QMK, VIA, and many manufacturer utilities) lets you raise the debounce time, which masks the problem; cleaning or replacing the switch cures it.

Ghosting explained

Inside a keyboard the switches sit on a grid of rows and columns. When you press three keys at the corners of a rectangle in that grid, current can flow through them and make the fourth corner look pressed. That phantom press is a ghost. Keyboards avoid it in two ways: cheaper boards detect the risky combination and block the third key (which feels like a missed keystroke), while better boards add a diode to each switch so current can only flow one way and every key can be read independently, which is what makes true NKRO possible. Membrane office keyboards typically block; almost all mechanical boards use diodes.

What to look for when buying a keyboard

For typing and general use, 6KRO with anti-ghosting is enough, since you rarely hold more than three keys. For rhythm games, fighting games, or stenography, look for NKRO over USB. Switch type matters more for feel than for reliability: linear switches (often red) have a smooth press, tactile switches (brown) have a bump at the actuation point, and clicky switches (blue) add an audible click. Optical and Hall-effect switches have no metal contacts to wear, so they cannot chatter, and Hall-effect boards let you set the actuation point per key. Hot-swap sockets let you replace a failing switch in seconds instead of soldering. Finally, check the polling rate: 1000 Hz is standard, and higher rates offer no measurable typing benefit but can reduce input delay by a millisecond or so for competitive games.

Frequently asked questions

Why does a key show as pressed but type the wrong character?

The tester lights keys by their physical position (event.code) but the character comes from your operating system layout (event.key). If you have a UK, German, or Dvorak layout active, the physical Q key can produce a different character. That is a layout setting, not a hardware fault. Check the "Key" value in the last-key panel.

Some keys do nothing when I press them. Is my keyboard broken?

Not necessarily. Browsers and operating systems reserve certain keys: the Windows key on some browsers, Print Screen on macOS, Fn (which is handled inside the keyboard and never reaches the computer), media keys, and some F-keys in full-screen mode. If a normal letter, number, or modifier key does not register in any app, then it is a hardware or driver problem. See the troubleshooting section above.

What is n-key rollover and why does it matter?

Rollover is how many keys a keyboard can register at the same time. 2KRO boards guarantee two, 6KRO six (the USB boot-protocol limit), and NKRO boards register every key on the board. It matters for fast typists who hit the next key before releasing the last one, and for games that use many simultaneous inputs. Test yours in the rollover section by holding as many keys as you can.

What is keyboard ghosting?

Ghosting is when pressing three keys that form a rectangle in the keyboard's electrical matrix causes a fourth, unpressed key to be reported. Modern boards prevent it with diodes or by blocking the fourth key (which appears as a missed press instead). Cheap membrane boards can still ghost on certain combinations such as three keys in the same region.

Can this tester measure my keyboard's latency?

No, and neither can any web page. A browser sees a key event only after the keyboard's firmware, the USB or Bluetooth link, the operating system, and the browser have all processed it, so the timestamps include tens of milliseconds that have nothing to do with the switch. The hold-duration and repeat measurements here are useful for spotting bounce and checking your OS repeat settings, but true input latency needs a hardware tester such as a photodiode-and-oscilloscope rig.

Does the tester work with wireless and Bluetooth keyboards?

Yes. The browser does not care how the keyboard is connected. If a wireless keyboard drops or repeats characters here but not when wired, the problem is the link: replace batteries, move the receiver to a front USB port or an extension cable, and keep it away from USB 3.0 ports and Wi-Fi routers, which cause interference on 2.4 GHz.

Why do Shift, Ctrl, and Alt show a "location" value?

Keyboards have two of each modifier. event.location tells you which one was pressed: 1 is the left key, 2 is the right, 3 is the numeric keypad, and 0 is a key with only one copy. It lets the tester light the correct physical key and lets you confirm that both copies of a modifier work.

Is anything I type recorded?

No. The page runs entirely in your browser, has no analytics or tracking scripts, and sends nothing to a server. Key events are drawn on screen and discarded. You can verify this in your browser's developer tools under the Network tab: after the page loads, there are no further requests.

Last updated 2026-09-15. Everything on this page runs in your browser. Nothing you type or upload leaves your device.