Guide · Input
Key Rollover and Ghosting, Explained
Pick a combo, hold all its keys together for a second, then let go.
Pick a combination and hold all of its keys together.
Verdict
NOT RUN
—
Hold a whole preset combination together for a second, then let go. Each combination you finish is judged.
Published thresholds, counted over the preset combos: 0 combos with a blocked key or a possible ghost is PASS. 1–2 is CHECK SETTINGS — a key not pressed fully, or a brushed neighbour, looks the same. 3 or more combos is LIKELY FAULT, consistent with a keyboard that runs out of key combinations it can tell apart. A key counts as blocked only when the rest of the combo arrived together and that key registers on its own. Full reasoning in the methodology.
By Device Bench · Published · Reviewed
If a strafe, sprint, and jump combination drops a key, one of the layers between the switches and the page lost it: the keyboard matrix, the report format, firmware, transport, the operating system, or the browser. Hold the combination in the test above to see which keys arrive, then use the sections below to narrow down which limit you hit.
What rollover measures
Rollover is how many keys a keyboard can register and report correctly at once. Under the n-key rollover naming convention, a 2KRO board guarantees any two keys together and a 6KRO board guarantees any six. NKRO means every key on the board can be held at once and still register.
Two limits matter here: the matrix must distinguish the pressed keys, and the report format must be able to send them to the computer. Matrix limits can depend on which keys you hold, so different combinations on the same board may behave differently.
How a keyboard matrix works
Most keyboards wire their switches into a matrix. On a full-size board with over a hundred keys, that saves the cost and space of a dedicated wire from every key to the controller. The matrix has row and column lines, with a switch at each intersection. Pressing a key closes the switch, connecting its row and column.
The controller scans the grid by energizing one row at a time and reading the active columns. It repeats the scan many times per second. If row 3 is energized and column 7 reads active, the key at that intersection is down. A single held key is unambiguous; several held keys can create extra current paths through the closed switches.
Why ghosting happens, and why you rarely see a ghost
Imagine three held keys at three corners of a rectangle in a matrix without per-key diodes: two share a row, and one shares a column with the third. During a scan, current can pass through the three closed switches in series and make the fourth corner read as pressed too. The electrical reading cannot distinguish those three keys plus one phantom from four real presses. That phantom fourth press is ghosting.
To avoid reporting the phantom fourth corner, firmware can suppress keys in the ambiguous combination. That drops a real held key, which is why the common symptom is a key that goes missing in one particular combination, and a visible ghost is rare.
In QMK's example, a diode in series with each switch blocks the reverse current path, so the matrix can tell every intersection apart. Per-key diodes address that electrical ambiguity; report format and firmware behavior remain separate limits between the matrix and the browser.
6KRO, NKRO, and why modifiers don't count
The classic USB boot-keyboard report has six ordinary key slots and separate modifier bits. Modifiers do not use those six slots. A keyboard can use a different report format after the operating system loads. A six-key plateau is consistent with the boot format, but the count alone cannot distinguish that from limits in the matrix, firmware, transport, operating system, or browser handling.
For NKRO, the sensing hardware, firmware, and report path all have to represent the held combinations. Many laptop and compact-board Fn functions are handled in firmware: the physical Fn press may never reach the operating system, even when it triggers a media or function action.
Rollover limits matter most for deliberate chords, such as movement plus modifiers and action keys. Check that the whole combination arrives reliably.
How to test yours
Open the keyboard tester and hold down a combination. Held counts the keys the browser currently sees; Max rollover records the highest count in the session. Start with movement keys plus Shift and Space, a rhythm-game chord, or a shortcut you use. One synthetic spread does not represent the whole board.
If Held stops at six, the keyboard may be sending the six-slot boot report. If a particular combination repeatedly loses a key that works on its own, matrix ambiguity or firmware blocking is plausible, not proven. In both cases, try another connection mode or the vendor's diagnostic before you settle on a cause.
Test the combinations you use. If a board blocks an unusual ten-key spread but handles every chord you play, it has no rollover problem for the way you use it.
A matrix example you can trace
Three closed corners of a rectangle can make the fourth intersection ambiguous in a matrix without per-key diodes. Firmware may report that phantom fourth corner, producing a ghost, or block the ambiguous combination and omit a real key. The table separates the matrix scan from the resulting events the browser receives.
| Closed positions | Matrix evidence | Browser consequence |
|---|---|---|
| R1C1 | One row-column intersection | One key event |
| R1C1 + R1C2 | Two intersections on one row | Two events if rollover permits |
| R1C1 + R1C2 + R2C1 | Three corners make R2C2 ambiguous without isolation | Firmware may suppress a real key or emit a ghost |
Sources and standards
QMK explains the matrix scanning, ghosting, and diode behavior used in the example above. USB-IF covers keyboard report formats, while W3C defines the keyboard events available to a web page.
- QMK: How a Keyboard Matrix Works: matrix scanning, ambiguous intersections, ghosting, and the role of diodes.
- W3C UI Events: the keyboard events a web page can observe after firmware has reported a key.
- USB-IF Human Interface Device specifications: the official USB HID specification and usage-table index behind keyboard report formats.
See a mistake or a changed standard? Report a correction.