Device test · Input
Keyboard Tester
Press any key. It lights up the moment your keyboard reports it — no download, nothing leaves your browser. Three instruments share the same event stream: an every-key visualiser for dead and double-typing keys, a key rollover / NKRO test that counts modifiers separately from the six boot-protocol slots, and a ghosting matrix that names the combinations your keyboard would not report.
- untested
- registered at least once
- held right now
- cannot be measured from a web page
Tab, Enter and Space are captured and tested, so they do not operate this page. Press Escape to hand Tab back to the browser.
Key rollover / NKRO test
Hold down as many keys as your hand allows and keep watching. Max rollover is the highest number of keys this keyboard reported at the same moment; Non-mod peak is the same count with Shift, Ctrl, Alt and the OS key removed, because those travel in their own bitfield and never spend one of the six key slots in the USB boot-protocol report. The non-modifier figure is the one that answers "how many keys can this board really do at once".
Nothing held yet. Hold several keys down together and this line reports what the keyboard sent.
Most keys reported at once: —
Modifiers in that set, which spend no key slot: none
Most non-modifier keys reported at once: —
Not measurable: how many keys your fingers are actually holding. This page sees only what the keyboard chose to send, so every number above is a floor — proof the board can do at least that much, never proof of its limit.
Keyboard ghosting test
Hold each three-key chord below, all at once, for about a second. A keyboard that wires its keys in a plain grid has combinations it cannot resolve, and firmware almost always handles that by refusing the third key rather than inventing a fourth — so the symptom you feel is a key going dead in one specific combination. Chords with Ctrl, Alt or the OS key are deliberately not listed: this page hands those to the browser on purpose, so a failure there would be the page's doing, not the keyboard's.
| Combination | Reported now | Result | If a key never arrives |
|---|
No combination run yet.
Not measurable: a key you held that the keyboard never sent. Nothing arrives, so there is nothing to observe — which is why "blocked" is recorded on your report and printed alongside the subset the keyboard did send.
What this test cannot see
Some keys and combinations never reach a web page at all. They are listed here rather than counted as failures, because a key that was intercepted and a key that is dead look exactly the same from inside a browser: nothing arrives.
- Fn — resolved inside the keyboard's own controller. It is drawn on the diagram as unmeasurable, never as untested.
- System chords — Alt+Tab, Command+Tab, Command+Space, and the Windows or Command key opening a menu are claimed by the operating system before the page runs.
- Ctrl and Command shortcuts — passed through on purpose so reload, devtools and tab shortcuts keep working. They still register as keys.
- Media-mode F rows — until F-Lock or Fn is used, F1–F12 send media codes, which show up in the extra-keys list instead of lighting the F row.
How this test works
Every physical key press generates a keydown event that your operating system passes to the browser. This page listens for those events and lights the matching key. Two properties matter: code identifies the physical position of the key regardless of language layout, and key is the character or action your layout actually produced. The tester maps by code, which is why an AZERTY "A" correctly lights the key in the Q position — same switch, different legend — while the readout shows the character your layout typed. Keys that cannot reach a web page at all are drawn in a fourth state, hatched, so the diagram distinguishes "not tested yet" from "not testable".
The rollover instrument counts the keys the keyboard reported simultaneously and keeps the highest figure of the session, then reports it twice: once for all keys, and once with the eight modifier keys removed. That split is the whole measurement. The classic USB boot-protocol report has six key slots plus a separate byte of modifier bits, so Ctrl+Shift+Alt plus four letters is nine keys and still within a six-key-rollover board's guarantee — a single combined count would read that as 9KRO. What the page cannot see is your hand: if you hold eight keys and six arrive, the keyboard may have dropped two or your fingers may have missed them, and no amount of browser code can tell the difference. So the peak is reported as a floor, and the page never claims to have found your keyboard's ceiling.
The ghosting matrix walks you through three-key chords chosen to sit close together in a typical wiring grid. When all three arrive at once, that is measured and the row passes. A blocked key is the opposite situation — the keyboard sends nothing, so there is no event to observe — and inferring a hardware fault from an absence would mean guessing at what your fingers did. The page therefore records a blocked combination only when you report holding it, and prints the subset it genuinely saw next to your report, so the measured half and the attested half stay visibly separate. Keys that appear during a chord without being part of it are listed as exactly that, since a matrix phantom and a brushed key are indistinguishable from here.