Skip to content
Burrows Tools

Keyboard Tester

Press a key and watch it light up on the keyboard below. Every key you press stays marked for the rest of the session, so you can work across the whole board and see at a glance which switches never answered — the quickest way to tell a dead key from a dead cable. Underneath, a detail panel names the exact event your browser received: event.code, event.key, the legacy keyCode, the key's location, and which modifiers were held. There is an n-key rollover count for anyone checking how many keys their board registers at once, a stuck-key warning, a chatter check that catches a worn switch firing twice for one press, and a reading of your operating system's key repeat delay and rate. Switch between ANSI and ISO to match the board in front of you, with or without the numpad. Nothing is uploaded and nothing is stored: your keystrokes are read, drawn on screen, and forgotten when the tab closes. Software cannot feel a key for you, which is why this page exists.

Layout

Click the board below to start. Keys register wherever you are on the page; clicking the board additionally holds back browser shortcuts such as Tab and F5 so they cannot interrupt the test.

Last key event

Press any key. Its code, key, legacy keyCode, location and modifier state appear here.

Rollover, coverage and repeat rate

Keys tested
0/1040% of the drawn layout
Max keys at once
0hold several keys together to measure rollover

Hold one key down to measure your operating system's repeat delay and rate.

Held right now: nothing

Keys this page can never see
Fn (laptop function key)
Handled inside the keyboard's own firmware. It never reaches the operating system, so no browser on any platform can see it — only the key it modifies, if that key gets through.
Media and volume keys
Play/pause, next, mute and volume are usually swallowed by the operating system before the browser is offered them. Some browsers surface a few as MediaPlayPause or AudioVolumeUp, but it is inconsistent enough that silence here proves nothing.
Brightness, backlight, power and sleep
Firmware or OS-level hardware controls with no web equivalent. They are not part of the keyboard event model at all.
Cmd+Tab, Alt+Tab, Ctrl+Alt+Del, Cmd+Space, the Windows key menu
Reserved by the operating system. It takes the keystroke first and switches windows, opens search or shows the security screen; the page is not consulted and cannot object.
Ctrl/Cmd+W, +T, +N, +Q and F12
Reserved by the browser. The event sometimes arrives, but the default cannot be cancelled, so a tab closes or the developer tools open regardless of what this page does.
PrintScreen on Windows
Recent Windows builds bind it to the Snipping Tool, which consumes the press. When it does come through, browsers report only keyup for it, so it lights up on release rather than on press.
Anything typed while an IME is composing
With a Chinese, Japanese or Korean input method active, keystrokes go to the composition buffer and arrive as a single Process key with keyCode 229. Switch to a direct layout to test the switches themselves.
How ANSI and ISO differ
The extra key beside left Shift
ISO boards have a key between left Shift and Z that ANSI boards do not — 105 keys against 104, or 88 against 87 without a numpad. It reports code IntlBackslash, and on a UK board it is printed \ and |. If your board has it and the ANSI layout is selected, the key will register as an untested extra rather than lighting up.
Enter's shape
ANSI Enter is a wide, one-row key. ISO Enter is an upside-down L two rows tall, which narrows the key above it and moves the backslash down beside the apostrophe. Both report code Enter, so the shape is cosmetic — but it is the fastest way to tell which board you own.
Where backslash lives
On ANSI it sits above Enter and reports Backslash. On ISO that position is taken by Enter, so the key printed # and ~ beside the apostrophe reports Backslash instead, and the key beside left Shift reports IntlBackslash.
Right Alt
ISO boards label the right Alt as AltGr and use it to type accented and currency characters. It reports code AltRight either way, so a dead AltGr key is testable here even though the character it produces is not.

How to use the keyboard tester

  1. Click the keyboard so it takes focus — that also holds back browser shortcuts such as Tab and F5 so they cannot interrupt the test.
  2. Press every key on your physical keyboard, one at a time. Each one turns green and stays green.
  3. Read the detail panel for the exact event.code, event.key, keyCode, location, and modifier state of the last key you pressed.
  4. Hold several keys down together to measure n-key rollover, and hold one key down to time the repeat delay and rate.
  5. Press Escape twice, or click outside the board, to release shortcut capture. Press Reset to clear the results and start again.

Frequently asked questions

Is my keyboard key broken?
If the key never lights up here, the browser never received it — but that is not the same as a broken switch. Fn, media and brightness keys are handled inside the keyboard or the operating system and never reach a web page at all. Try the key in a text editor too: if it works there and not here, it is a reserved key rather than a fault. If it works nowhere, the switch, the cable, or the keyboard's own firmware is the problem.
What is an n-key rollover test?
It measures how many keys your keyboard can report pressed at the same time. Cheap membrane boards commonly manage two or three before extra presses are dropped, USB keyboards in the standard boot mode top out around six, and n-key rollover boards report every key you can physically hold. Hold as many keys as you can and this page reports the highest number it saw — a floor, not a rating, because the operating system can drop a key on the way here.
Why does the key I press show a different letter?
Because event.code names the physical switch while event.key names the character your current layout produces from it. On a German layout, the switch printed Z on a US board reports code KeyY and key "z". A key registering here proves the switch works; it does not prove your operating system maps it to the character you expect.
Why does the page block Tab and F5 while I am testing?
Only while the board has focus, and only so a test key does not reload the page or move focus away mid-test. Escape is never captured, pressing it twice releases the capture, clicking anywhere outside the board releases it too, and the checkbox turns it off entirely. Combinations the browser reserves — Ctrl+W, Ctrl+T, F12, Cmd+Tab, Alt+F4 — cannot be captured by any web page, and this one does not pretend otherwise.
Are my keystrokes recorded or sent anywhere?
No. The page has no server side, no analytics on your keystrokes and no storage: every key event is handled in your browser to colour a key and fill in the detail panel, and it is gone when you close the tab.