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.

Key Code Held0 Max rollover0 Non-mod peak0 Tested0 Combos0/8 Blocked0 Chatter0 Capsoff

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.

CombinationReported nowResultIf 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.

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.

Frequently asked questions

How do I test key rollover or NKRO here?
Hold as many keys down at once as you can and watch the two peak figures. Max rollover counts every key the keyboard reported simultaneously; Non-mod peak excludes Shift, Ctrl, Alt and the OS key, because the USB boot-protocol report carries those in a separate bitfield and they never occupy one of its six key slots. Six non-modifier keys is the size that report holds, so reaching seven or more means this keyboard is not limited to it, and ten or more is what is normally described as N-key rollover. Every figure is a floor: the page can only report what the keyboard sent, so it can raise the number you have proven but never find the ceiling.
What does the ghosting matrix prove, and what can it not prove?
Each row asks you to hold one three-key chord. If all three arrive together, the page records that the combination registered, and that is a real measurement. The opposite is not: a blocked key sends nothing at all, so the page cannot tell a key your keyboard refused from a key your finger missed. That is why a blocked result is recorded only when you report it, and why the row then names the subset the keyboard did send. Keys reported during a chord that are not part of it are listed separately rather than called ghosts, because a stray press from the same hand looks identical.
Which keys can a web page never test?
Fn is handled inside the keyboard's own controller and never reaches the operating system, so it is drawn on the diagram as unmeasurable rather than left out. Combinations the system claims first — Alt+Tab, Command+Tab, the Windows or Command key opening a menu — are taken before this page runs, and Ctrl and Command shortcuts are deliberately passed through so reload and devtools keep working; those are listed as passed to the browser. Print Screen reports only on release on Windows, so it lights when you let go, and a keyboard whose F row is in media mode sends media codes until F-Lock or Fn is used. Because the page cannot tell an intercepted key from a dead one, a key that never arrives is left untested rather than marked failed.
Does this work with AZERTY, QWERTZ, or other layouts?
Yes. The tester listens to the physical position of each key (the KeyboardEvent code), not the printed legend, so every physical key lights up correctly on any layout. The on-screen labels show US legends, and the readout also shows the actual character your layout produced.
My key double-types. Is it broken?
Rapid repeated registrations from a single press, called chatter, usually mean a worn or dirty switch. Try cleaning under the keycap with compressed air first. On mechanical keyboards a persistent chattering switch typically needs to be replaced; on laptops it usually means a keyboard service.

Related tools