Keyboard tester online
Press keys to verify every switch on your keyboard registers correctly.
ANSI US — 87 keys
- ANSI has no key between left Shift and Z, and its Enter is a single wide 2.25u bar with the backslash key sitting above it.
- Every KeyboardEvent.code name is defined against this layout, which is why a Danish Æ still reports as Semicolon.
Legends are drawn from the national layout; highlighting always follows KeyboardEvent.code, so the right physical key lights up whatever your OS layout is set to.
Last key pressed
Press any key...
NKRO / anti-ghosting
NKRO means every key registers when pressed simultaneously. Hold 6+ keys to verify.
Chatter detection
No chatter detected
Keys firing keydown twice within 30ms are flagged.
Event log
Press keys to see events...
This keyboard tester listens for keydown and keyup on the whole page and paints the matching key on a drawn board, so a switch that never fires is a key that never lights up. Two selectors decide what gets drawn: the layout standard (ANSI US, ISO UK, the three Nordic layouts, German QWERTZ, French AZERTY, Spanish, or Japanese JIS) sets the physical shape and the legends printed on the caps, and the size (Full, TKL, 75%, 65% or 60%) sets how many keys there are. Highlighting always follows KeyboardEvent.code, which names a physical position rather than a character, so the Æ key on a Danish board lights up correctly even though the browser calls it Semicolon. For every press the page prints the four identifiers a browser exposes, counts how many keys you can hold at once, flags a switch that fires twice inside 30 milliseconds, and tracks how many of the drawn keys you have covered.
Key facts about Keyboard tester online
| Input source | window keydown and keyup, captured in the capture phase |
|---|---|
| Layout standards drawn | ANSI US, ISO UK, ISO Danish, ISO Norwegian, ISO Swedish/Finnish, ISO German, ISO French AZERTY, ISO Spanish, JIS |
| Sizes drawn | Full, TKL, 75%, 65% and 60% — 104/87 keys on ANSI, 105/88 on ISO, 109/92 on JIS |
| What drives the highlight | KeyboardEvent.code, a physical position — the cap can read Æ while the event says Semicolon and the right key still lights |
| Values shown per press | code, key, keyCode, which, location, timestamp |
| location codes | 0 standard, 1 left, 2 right, 3 numpad — separates the two Shifts and Ctrls, and AltGr from left Alt |
| ISO versus ANSI | ISO adds IntlBackslash next to a short 1.25u left Shift and turns Enter into an L shape across two rows: 105 keys against ANSI's 104 |
| JIS extras | IntlYen beside a 1u Backspace, IntlRo beside right Shift, and NonConvert, Convert and KanaMode around a 3.25u space bar |
| Dead keys | ´ ¨ ^ ` are drawn with a dotted underline; they fire keydown and keyup but type nothing until the next key lands |
| Chatter threshold | a second keydown for the same code within 30 ms while it is still held |
| NKRO check | highest number of codes held simultaneously; 6 or more is reported as a pass |
| Cannot be detected | Fn, most OS-reserved combos, actuation force, travel distance, USB polling rate |
What happens to your file
Nothing is uploaded. The page attaches a keydown and a keyup listener to the window inside this tab, keeps the pressed codes in React state and a couple of refs, and repaints the drawn board — there is no request to any server, no storage, and no analytics on the keystrokes. Because keystrokes never leave the tab, the tool also never sees what you type in other windows: it can only read keys pressed while this page has focus. Closing or reloading the tab discards the tested-key set, the press counts, the chatter warnings and the event log; there is nothing to clear afterwards.
About this tool
- 1
Pick the layout standard
Choose the national layout printed on your caps — ANSI US, ISO UK, Danish, Norwegian, Swedish/Finnish, German, French AZERTY, Spanish or JIS. This changes the legends and the physical shape, not what the browser reports.
- 2
Pick the size
Full, TKL, 75%, 65% or 60%, so the drawn board has the same key count as yours. Changing either selector clears the tested set, the press counts and the chatter list.
- 3
Click the page once
The listeners sit on the window of this tab, so the page has to have focus. If nothing lights up, click an empty part of the page and press a key again.
- 4
Walk the whole board
Work row by row. Each key you press turns green and stays green, and the counter shows tested keys out of the drawn total until it reads All tested.
- 5
Read the last-key panel
It prints code, key, keyCode, which and location. Use code to confirm the physical switch fired and key to confirm the OS layout is producing the character you expect.
- 6
Hold six keys for NKRO
Press and hold six or more keys at once. Max simultaneous records the highest count reached; if it stops at two or three, the board or its USB mode is limiting rollover.
- 7
Watch the chatter panel
Tap a suspect key thirty or forty times. A switch that re-fires within 30 ms of the previous keydown is listed with a count — that is the signature of a worn or bouncing switch.
- 8
Turn on the heatmap
After a long session the heatmap shades each key by how often it was pressed, which is a quick way to see whether a key you thought you pressed once actually registered three times.
| Browser support | any browser with KeyboardEvent.code — Chrome, Edge, Firefox, Safari 10.1+, Opera |
|---|---|
| keyCode and which | deprecated but still populated by every current browser; shown for legacy debugging |
| AltGr | the right Alt key on every ISO board; it reports code AltRight with location 2, so it is testable like any other key |
| Safari quirk | Cmd-held presses often deliver no keyup, so keys can stay lit until you tap Reset |
| Numpad keys | drawn on the Full size only; Num Lock changes key, never code |
| 60% caveat | the top-left key is drawn as Esc, which is what most 60% boards send; the ` / ½ / § legend lives on a Fn layer there, so use 65% or larger to test that switch |
| Connection type | USB, PS/2, Bluetooth and 2.4 GHz wireless all look identical to the browser |
| Touch devices | a software keyboard fires events but has no physical switch to diagnose |
| Offline | works with no network once the page has loaded |
| Account or install | none — no signup, no extension, no driver |
- Test in a plain browser window rather than a remote-desktop or VM session — the remote client intercepts keys before the browser sees them and produces false dead keys.
- A key that lights in the wrong place usually means the wrong layout standard is selected, not that the keyboard is broken; ANSI and ISO differ around Enter, left Shift and backslash.
- The small character in a cap's top-left corner is the Shift legend and the one in the bottom-right is the AltGr legend — a quick reference while you walk the board.
- If Max simultaneous stalls at six, the board is in USB boot-protocol mode; many keyboards have a hardware switch or firmware toggle that turns full NKRO back on.
- Chatter is intermittent. One clean run proves nothing — hammer the suspect key for a minute before you conclude the switch is fine.
- Keys that produce nothing at all, such as Fn or a dedicated macro key, are handled inside the keyboard's own firmware and never reach the browser; that is not a fault.
- Use location to tell the two Shift, Ctrl and Alt keys apart when a game only responds to one of them: left reports 1, right reports 2.
- Nine layout standards including ISO Nordic, QWERTZ, AZERTY and JIS
- Five sizes from Full 104/105 down to 60%
- Correct ISO geometry: L-shaped Enter, short left Shift, extra IntlBackslash key
- Live code, key, keyCode, which and location readout
- NKRO and anti-ghosting counter with a six-key pass mark
- Key chatter detection at a 30 ms threshold
- Per-key press-count heatmap and a 50-event log
- Checking a new mechanical keyboard for a dead switch while the return window is still open.
- Confirming a suspected chattering key before ordering replacement switches or filing an RMA.
- Testing a second-hand board at a meetup or before paying for it online.
- Verifying that full N-key rollover actually works after flashing new firmware or flipping the board's NKRO switch.
- Checking that an imported ANSI board really is missing the ISO key your national layout expects before you buy replacement keycaps.
- Confirming that a Nordic, German or French board produces the right characters after an OS keyboard-layout change.
Put this keyboard tester on your own site
The widget is the same tester with the explanations stripped out. It is free to embed on any site, commercial or not, with no key and no limit. The only condition is that the link under the frame stays.
<iframe src="https://toolchamp.app/embed/keyboard-tester/" width="100%" height="480" loading="lazy" title="Keyboard Tester by ToolChamp"></iframe> <p><a href="https://toolchamp.app/tool/keyboard-tester/">Keyboard Tester by ToolChamp</a></p>
The widget runs entirely in the visitor’s browser, sets no cookies and sends nothing to a server, so it needs no consent banner of its own on your page.
Related tools
View allPart of Hardware testers that run in your browser
Works well with this5
More hardware testers10
More in Gaming11
Related categories2
Updated