What Browser Keyboard Tests Can and Cannot Show
Published October 12, 2026
Several websites advertise an online keyboard polling rate tester with a live frequency counter in hertz. Web browsers cannot measure a keyboard’s physical polling rate. This article explains the technical reasons for that boundary, what browser-level key registration actually tells you, and how to troubleshoot an unresponsive key switch.
The USB HID pipeline and event queuing
A keyboard communicates with a computer using the USB Human Interface Device (HID) protocol. The keyboard controller scans its switch matrix at internal intervals and sends input reports over USB endpoints. Office keyboards often report every 8 milliseconds (125 Hz), while gaming models typically report every 1 millisecond (1000 Hz) or faster.
Those USB packets never reach web applications directly. The host operating system kernel receives the raw interrupt transfer, decodes the usage codes defined by the USB HID Usage Tables, handles keyboard repeat delays, applies user layout mappings, and posts messages to the active application message queue.
By the time a web engine receives a keyboard event, the hardware report timestamp has been replaced by the system event time. The browser’s main event loop dispatches keydown and keyup callbacks alongside DOM layout, style recalculations, and JavaScript tasks. A browser measures only how frequently its JavaScript thread processes event queue callbacks, not when the physical microcontroller closed its circuit.
Why WebHID cannot bypass the restriction
Modern Chromium browsers implement the WebHID API, which allows web pages to read raw HID input reports from connected peripherals. However, both the W3C WebHID specification and browser implementations explicitly prohibit opening system input devices. Keyboards and mice are protected under a top-level blocklist.
This restriction exists for operating system security. If any website could open a raw HID connection to a keyboard, malicious scripts could log passwords, capture authentication tokens, and record personal communication without browser permission prompts. Because web pages cannot open keyboard HID interfaces, no website can inspect hardware report timestamps.
Any online tool displaying a keyboard polling rate in hertz is either reporting browser event loop execution speed or generating arbitrary numbers.
What browser key tests can establish
While web browsers cannot verify report frequency, standard DOM keyboard events provide reliable verification of two physical behaviors:
-
Key registration. The browser receives a
KeyboardEventcontaining acodeproperty corresponding to the physical key position. If pressing a key produces akeydownevent, the entire chain from physical switch to browser window is functioning. If no event arrives, the signal failed somewhere along that pipeline. -
Simultaneous key registration. Keyboards with limited matrix wiring (often called 6-key rollover or 6KRO) can report only a limited number of concurrent switch activations. Keyboards with full n-key rollover (NKRO) can report all pressed switches simultaneously over specialized USB descriptors. Testing simultaneous key presses reveals the practical limit delivered to running applications.
Ghosting, masking, and operating system interference
Physical keyboard matrices arrange switches in rows and columns. When three switches sharing row and column traces close at the same time, electrical current can backfeed across the matrix, creating a phantom fourth contact known as ghosting. Modern keyboard firmware prevents ghosting through matrix masking, which suppresses ambiguous key presses instead of emitting incorrect characters.
A browser cannot distinguish matrix masking inside keyboard firmware from events dropped by operating system software. Low-level accessibility hooks, antivirus software, virtual desktop utilities, and graphics overlays frequently intercept key events before the browser window receives them. If a combination fails in a browser, testing the same combination in a native diagnostic utility helps confirm whether the restriction comes from hardware or software.
Diagnostic flow for an unresponsive key
When a keyboard key fails to register in games or desktop applications, use this step-by-step diagnostic process:
-
Test the physical key in any clean browser text input or open developer tools on the console tab and log
KeyboardEvent.code. If the event fires consistently, the switch and firmware work correctly. The problem lies in application-specific keybindings, game configurations, or user permissions. -
If no event arrives, plug the keyboard into a different USB port, preferably directly into the motherboard rather than through an unpowered external hub.
-
Test the keyboard on a second computer running a clean operating system. If the key works on the second machine, software hooks, background utilities, or driver configurations on the original system are intercepting the keycode.
-
If the key fails across multiple computers and USB ports, the physical switch contact, mechanical solder joint, or hot-swap socket has failed. Mechanical switches can be cleaned with contact cleaner or replaced if the board features hot-swap sockets.
Sources
MDN Web Docs — KeyboardEvent.code
https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code
Last checked 2026-10-12
W3C — UI Events Specification - KeyboardEvent
https://www.w3.org/TR/uievents/
Last checked 2026-10-12
W3C — WebHID API
https://wicg.github.io/webhid/
Last checked 2026-10-12
MDN Web Docs — WebHID API
https://developer.mozilla.org/en-US/docs/Web/API/WebHID_API
Last checked 2026-10-12
URLs are listed as plain text. This site does not link out to other sites.
Last reviewed 2026-10-12