About This Keyboard Tester
This is a single-purpose diagnostic tool: press a key, see whether your browser received it, and get the exact identifiers it received. It exists because the alternative — mashing keys into a text editor and squinting at the result — cannot tell the difference between a dead switch, a wrong keyboard layout, a rollover limit and a chattering contact. Those four problems feel identical while typing and have completely different fixes.
How the test works
The page listens for the browser's keydown and keyup events on the window.
For each event it reads three properties and shows them unmodified:
event.code— the physical key position, independent of your keyboard language.event.key— the character or action that position produces under your current layout.event.keyCode— a deprecated numeric identifier, displayed because older software and game engines still use it.
Every key that fires an event is matched against a map of the 104-key US ANSI layout drawn on
screen. A match lights that key green and keeps it lit; a key outside the map — an ISO-only key, a
media key, a macro key — is still recorded, and counted separately as an "extra key" so nothing you
press is silently ignored. Operating-system auto-repeat events (the stream of keydowns you get from
holding a key) carry repeat = true and are excluded from every counter, because they are
not new physical presses.
The four measurements
Key test
A pass/fail sweep of the board. The count of distinct keys tested plus the "show untested keys" list gives you a written record of exactly which key codes never registered — the thing worth pasting into a warranty claim or a repair request.
Rollover
A tracker of which key codes are held simultaneously, reporting both the current count and the maximum ever reached. It measures the whole chain — keyboard, cable or radio link, OS and browser — rather than the keyboard alone, which is the number that actually affects your games. It cannot see inside the keyboard's USB report, so it cannot distinguish "the keyboard sent six" from "something in between forwarded only six"; the rollover page explains how to separate those by retesting on a direct port.
Chatter
A same-key gap detector. When one key produces two fresh keydown events separated by less than the threshold (default 80 ms, editable from 5 to 500 ms), the pair is flagged with its exact gap in milliseconds. The threshold is a practical convention rather than a physical constant, which is why it is adjustable and why the raw gap is always displayed next to the flag — you are meant to judge the number, not just the colour.
Spacebar
A press counter with a rate, computed as (presses − 1) ÷ seconds between the first and latest press. The timer starts on your first press, so there is no countdown to race.
What this tool cannot do
Being honest about the limits is more useful than overselling the tool:
- It cannot see the Fn key. Fn is handled inside the keyboard controller and never reaches the browser. No web page can test it directly — only its effects.
- It cannot see hardware-level keys such as power, eject, or brightness controls that some machines handle entirely in firmware.
- It cannot block every shortcut. Browsers reserve combinations like Ctrl+W and the OS reserves Win-key combos; a web page is not permitted to intercept them.
- It cannot tell you where in the chain a fault sits. A key that produces no event could be the switch, the ribbon, the cable, the port or the driver. Swapping ports and testing a second keyboard is how you narrow that down.
- It cannot measure actuation force, travel distance or latency. Those need instrumentation, not a browser.
Accuracy and sourcing
The event readouts are raw browser values — nothing is estimated. Where a page gives interpretation guidance instead (which millisecond gaps count as chatter, what key counts a 65% board typically has), it is labelled as a range or a rule of thumb in the table caption, because those numbers vary by model and by person. Formulas are written out in full so you can check them. Nothing on this site reports a statistic it did not compute from your own key presses or from stated arithmetic.
Privacy in one sentence
Every keystroke is processed by JavaScript inside your browser and is never transmitted — there is no backend to transmit it to, and we never receive your key presses. The full statement, including the third-party advertising disclosure, is on the privacy page.
Where to go next
- Keyboard tester — the full 104-key sweep and the key-size reference table.
- Laptop keyboard test — Fn behaviour, dead rows, ribbon faults.
- Key rollover test — NKRO, 6KRO, ghosting and blocking.
- Keyboard chatter test — double-typing detection with editable thresholds.
- Spacebar test — press counter, rate, and dead-zone hunting.
Corrections and bug reports are welcome through the contact page.