Skip to main content
Documentation menu
On this page

Keyboard

HID Keyboard Tester

Browser key events side by side with raw WebHID reports, when your browser supports it.

  • Available — Live on this site right now.
  • Browser Tool — Runs in the browser you are reading this in.
  • No Install — Nothing to download, no extension, no account.
  • Client-Side — Runs entirely on your device. No test data is uploaded.
  • Requires Permission — Asks your browser for access before it can run.
  • Desktop — Needs a physical keyboard or mouse to be useful.

Live tool: /hid-keyboard-tester/

This page explains the tool. The tool itself is one click away and needs no sign-in.

Open HID Keyboard Tester

What is this tool?

Your keyboard talks to your computer as an HID device — Human Interface Device — sending small binary reports that describe which keys are down. The operating system turns those reports into the key events a web page normally receives.

This page shows both layers. The event log works on every browser and needs no permission. If your browser supports WebHID, you can additionally connect the keyboard directly and watch the raw reports arrive before the operating system has interpreted them.

The distinction matters because the two layers can disagree. A key remapped in firmware, or a report the operating system chose not to surface, shows up in one view and not the other.

How to use it

  1. Start with the event logPress keys and they appear immediately. No connection or permission is needed for this part — the ALL, KEYDOWN, KEYUP, REPEAT and MODS filters work exactly as they do in the Key Event Tester.
  2. Connect a device, if you want raw reportsPress CONNECT HID DEVICE. Your browser shows its own device picker and you choose which device to grant access to. The page never sees a device you do not pick. DISCONNECT releases it.
  3. Compare the two viewsThe HID filter isolates raw reports. Press one key and watch what arrives in each layer — that side-by-side view is the whole point of the tool.
  4. Use Capture Mode for reserved shortcutsCapture Mode intercepts key events more aggressively so combinations the page would normally let through to the browser stay inside the test instead.
  5. Freeze, copy, resetPAUSE TEST stops the stream, Copy Event puts the selected entry on your clipboard, Clear empties the log and RESET SESSION starts fresh.

What the results mean

Browser events against HID reports

A browser event is the operating system's interpretation: layout applied, remapping applied, some keys withheld. An HID report is closer to the wire. When a key appears in the report but not as an event, something between the two chose not to pass it on.

The rollover tiers

2KRO handles two simultaneous keys, 6KRO six plus modifiers — the USB boot-protocol limit — and NKRO every key at once. The page explains how to read which tier your board behaves like from what the log shows.

No device connected

Entirely fine. The event log is fully functional without WebHID; connecting a device adds the raw layer rather than enabling the test.

WebHID unavailable

WebHID is a Chromium-family feature. On Firefox and Safari the connect button cannot do anything, and the page falls back to the event log rather than pretending to have data it does not.

What it can detect

  • Every browser key event, with key, code, location, repeat and modifier state
  • Raw HID input reports, on browsers that support WebHID and after you grant access
  • Disagreements between what the hardware reported and what the operating system passed on
  • Which rollover tier your keyboard's observed behaviour matches

Limits worth knowing

A browser can only report what the platform gives it. These are the honest boundaries of this page, so a result is never read as more than it is.

  • WebHID needs your explicit permission through the browser's own device picker, and it is only available in Chromium-based browsers. Nothing about the connection is automatic or silent.
  • Even a raw HID report is not firmware introspection. It shows what the device sent; it cannot read switch travel, debounce settings or scan rate.
  • Some keyboards expose their keyboard interface in a way the operating system claims exclusively, so WebHID may be unable to open it even where the API exists.
  • Keys the operating system reserves may be missing from the event log while still being present in the HID report — that is the operating system's decision, not a keyboard fault.

Tips

  • Run the event log first. If the key you care about behaves correctly there, you do not need WebHID at all.
  • When a key is remapped in firmware, comparing both layers tells you where the remap happens — inside the keyboard, or in a driver on the host.
  • For rollover specifically, the Anti-Ghosting Test is the more direct tool; it walks through named combinations rather than leaving you to press them.

Troubleshooting

The connect button does nothing

Your browser does not support WebHID. Chrome, Edge and other Chromium-based browsers do; Firefox and Safari do not. The event log still works.

My keyboard is not in the device picker

The operating system may hold the interface exclusively, or the device may expose no accessible HID collection. This is a platform restriction and not something the page can work around.

A key is in the HID report but not the event log

The operating system received it and chose not to deliver it as a key event — typically a reserved shortcut or a media key. Capture Mode helps with some of these.

Are my keystrokes sent to a server?

No. Both the event log and any HID reports stay in your browser. Nothing is uploaded, and a device connection ends when you disconnect or close the page.

Ready to run it?

Browser key events side by side with raw WebHID reports, when your browser supports it. Nothing to install, and it opens in this browser.