Keyboard Tester: Rollover, Ghosting and Chatter Test
Test every key on full-size, TKL, 75% or 60% boards in ANSI or ISO, see the full event for each press, find which key drops out when several are held, and catch chatter with its interval. Nothing leaves the page.
- Not pressed yet
- Held now
- Registered (tick)
- Possible chatter
- Never sent to a web page
Idle. Press Start test, or click the keyboard. While a test runs, every key comes here, including Tab and the number keys; press Esc twice to stop.
·
No key yet.
- code
- ·
- keyCode
- ·
- location
- ·
- repeat
- ·
- modifiers
- ·
- time
- ·
0
Most keys held at once: 0.
0 of 0 keys registered
Not pressed yet0 of 0
Start a test, then hold every key in the combination at the same time.
The count is what reaches this page. The keyboard, its connection mode, the operating system and the browser can each cap it, so a low number tells you the whole chain stopped there, not which part did.
0
possible chatter events
Nothing yet. This shows what your layout turns each press into, without a text box that would autocorrect or lose focus.
| # | Type | key | code | keyCode | Location | Repeat | Modifiers | Time ms | Held ms | Since last press ms | Note |
|---|---|---|---|---|---|---|---|---|---|---|---|
| No events yet. | |||||||||||
| Key | code | Presses | Repeats | Mean hold ms | Shortest hold ms | Fastest re-press ms | Chatter flags |
|---|---|---|---|---|---|---|---|
| No keys yet. | |||||||
What this keyboard tester checks that the others do not
Every keyboard tester lights a key when you press it. The useful questions come after: which key dropped out when you held six, whether a key that types twice is really bouncing, and what you can hand a seller or repair shop as evidence. The testers ranking for this search answer the first and send you elsewhere, or nowhere, for the rest. This one answers all three on one screen.
| This tool | KeyboardTester.io | TypeQuicker | keytest.io | Key-Test | CodeItBro | |
|---|---|---|---|---|---|---|
| Layouts | Full-size, TKL, 75%, 60%; ANSI or ISO; Windows or Mac | Full-size, TKL, 60%; ANSI or ISO; Windows or Mac | One drawing, no selector | One; asks for an English layout | One; asks for English | One, 78 keys |
| Keys held at once | Live count, peak, which keys | Separate page | On a separate rollover page | Advice only | Not described | Held now, highest |
| Which key failed in a combination | Names the missing key and any extra one | Watch and see | Watch for extra keys | Watch for failures | Not described | A count |
| Chatter | Flags a re-press under your threshold, with the interval | FAQ says it warns; method not given | A symptom to look for | Not described | Not described | None |
| Event details | key, code, keyCode, location, repeat, modifiers, timing | key, code, location, keyCode, hold | key, code, keyCode, modifiers, repeat, time | Not described | Not described | Last key only |
| Export | Markdown, CSV, JSON | “Save report”, format not stated | FAQ mentions CSV or TXT; no control seen | None | None | None |
| Polling rate | Not measured, and says why | Not on this page | Separate tool that reports Hz | Claimed; method not given | None | None |
What each page described when reviewed in October 2026; “not described” means we could not find it there. Reviewed: KeyboardTester.io, TypeQuicker, keytest.io, Key-Test, CodeItBro. keyboardtester.com, the oldest name in the results, describes its tester mostly in jokes, down to a guarantee with “a margin of error of 43%”.
How a browser sees your keyboard
A web page never reads the keyboard. The browser hands it a keydown when a key goes down, repeated keydown events marked repeat while it is held, and a keyup when it comes back. The W3C UI Events specification defines what each event carries; the log shows all of it.
- code names the physical key, such as KeyQ, whatever your layout, so the drawing is built from it. The values are set out in UI Events KeyboardEvent code Values, a W3C Recommendation since April 2025.
- key is what the press means under your layout: a, A, Enter. The tester relabels each key with the character it types, so an AZERTY or QWERTZ board reads correctly without switching to English. Where a browser offers Keyboard.getLayoutMap(), one button labels every key at once.
- keyCode is the old number. MDN marks it deprecated, but older software still reads it, so the log keeps it.
- location tells left from right and the numpad from the main block: 1 left, 2 right, 3 numpad, per MDN’s KeyboardEvent reference.
ISO boards, used across the UK and Europe, have an extra key beside the left Shift, which the same code values specification names IntlBackslash. If it arrives while ANSI is selected, the tester suggests switching.
Rollover, ghosting and blocking
Most keyboards wire their switches in a grid and scan it, as Deskthority’s rollover, blocking and ghosting guide explains. Hold three keys on the corners of a rectangle in that grid and the controller can see the fourth corner as pressed: that phantom is ghosting. Keyboards guard against it by refusing to report a key that might be a ghost, which is blocking: you press it and nothing arrives. Rollover is how many keys a board reports at once: six plus modifiers for 6KRO, any number for NKRO.
Six comes from the boot keyboard report in the USB HID specification, which carries one byte of modifier flags and six key codes, so a board in that mode cannot report a seventh ordinary key however it is built.
The live count and session peak show the most keys that reached the page together. The combination check is sharper: hold a set such as W, A, S, D, Space and Left Shift and it names any key that never joined the others (blocking) and any key that appeared which was not in the set (ghosting, if you were not touching it).
Key chatter, and how to read the numbers
Chatter is one press reported as two or more. A worn or dirty switch makes and breaks contact a few times as it closes; firmware waits a few milliseconds before believing it, which is called debounce (ZMK firmware defaults to 5 ms). When that fails, you type thhe. The tester flags a press of the same key that arrives sooner after the previous one than your threshold, 40 ms by default, and records the interval and the gap since release.
To set the threshold for your own hands, tap a healthy key twice as fast as you can and read its fastest re-press in the per-key table; keep the threshold below that. A flag far below it, with a release gap of a few milliseconds, is unlikely to be your finger. One flag means little: tap the suspect key twenty times at a normal pace and compare its flags with a healthy neighbour in the per-key table.
One known false alarm: on some Linux desktops auto-repeat arrives as real release and press pairs, which MDN’s KeyboardEvent reference says a page cannot tell from real presses (it describes GTK-based environments). Held keys there can look like chatter, so judge by single taps.
What a web page cannot test
- Fn. It is handled inside the keyboard or by the operating system. MDN’s table of code values lists a code for it on macOS and notes that no event is actually fired. The tester draws it dashed, marks it n/a and leaves it out of the count. Keys reached through an Fn layer do arrive, under “Also seen”.
- Shortcuts the system keeps. Alt+Tab, Ctrl+Alt+Del, Cmd+Tab and the browser’s own close-tab shortcut go to the system or browser first. If one switches you away, the tester releases every held key and notes it, because their keyup will never arrive.
- Half-reported keys. MDN’s KeyboardEvent reference notes that on macOS Caps Lock sends only a keydown, and KeyboardTester.io warns that Print Screen and some system shortcuts may be intercepted before they reach the browser. A press with no release, or a release with no press, is counted and marked, never filled in.
- Input methods. While a Chinese, Japanese or Korean input method is composing, events can carry keyCode 229 instead of a real value. The log marks them IME.
- Polling rate. Polling is how often the computer asks the keyboard for a report. A page never sees those reports, only one event per press and per release, stamped by the browser’s clock, and a held key repeats at your system’s repeat setting, which the tester measures and labels as such. So there is no polling-rate figure here. It shows the clock step instead, the smallest tick of the browser’s timer, so you know how far its millisecond figures can be trusted.
How to test a keyboard with this tool
- Choose your layoutPick the size (full-size, TKL, 75% or 60%), ANSI or ISO, and Windows or Mac labels so the drawing matches your keyboard.
- Start the testPress Start test, or click the keyboard. Every key now comes to the tester, including Tab and the number keys, and the page’s own shortcuts are paused.
- Press every keyEach key lights while held and keeps a tick once registered. The list beside it shows what has not been pressed yet.
- Check rollover and chatterChoose a combination and hold all of its keys together; then tap any key you suspect twenty times and read its chatter flags.
- Stop and exportPress Esc twice or Stop test, then download the Markdown report, the CSV event log or the full JSON.
Stopping and starting again keeps everything, and so does changing the layout; Reset test clears it.
When to use it
- Buying second-hand: run every key and two combinations, and keep the report with the receipt.
- After a spill or a clean: the untested list remembers which keys have not registered.
- A new mechanical board: read the chatter column before the return window closes.
- Gaming: check that your real movement and modifier keys register together.
- Custom firmware: the code column shows what each key now sends.
Nothing you press leaves this page. More free utilities are on the tools hub.