Keyboard Tester Online — Test Every Key, Detect Stuck or Broken Keys
Press any key and the page reports back four things at once — the readable `key` value ("a", "Enter", "ArrowUp"), the layout-independent `code` value ("KeyA", "Enter", "ArrowUp" — same on QWERTY, AZERTY, Dvorak), the legacy `keyCode` number (still useful for older code paths), and the physical key location (standard, left, right, numpad). The active modifiers (Ctrl, Shift, Alt, Meta) appear together so you can confirm a chord registered correctly, and a rolling history of the last 20 events lets you spot a key that double-fires, fails to release, or is being intercepted by a global shortcut. Use it to diagnose a stuck key on a fresh laptop, audit a new mechanical keyboard for ghosting under N-key rollover, troubleshoot a non-Latin layout that's mapping the wrong glyph to a physical key, or just figure out which `code` value to listen for in your own JavaScript.
About this tool
The page binds `keydown` and `keyup` listeners on `window` with `event.preventDefault()` so no key combination accidentally triggers browser shortcuts (Ctrl+W, F11, Escape on full-screen) while you're testing. The displayed values come straight from KeyboardEvent: `e.key` for the printable/named character, `e.code` for the layout-independent physical position, `e.keyCode` for legacy compatibility, `e.location` for left/right/numpad/standard, plus `e.ctrlKey/shiftKey/altKey/metaKey` for modifiers. The pressed-keys set tracks every code currently held down (keydown adds, keyup removes) so you can see exactly which physical keys are firing simultaneously — useful for testing the rollover capacity of a gaming keyboard. The history is capped at 20 entries to keep memory bounded for fast typists. Use cases: warranty-claim evidence for a sticky/dead key, picking the right `code` constant for a JavaScript keyboard shortcut, validating that a new layout (US-International, Spanish, Programmer Dvorak) maps as expected, or debugging an event handler that mis-fires on AltGr.
- Live readout of key, code, keyCode, location, and modifiers per keypress
- Pressed-keys set tracks every key currently held down (test rollover)
- Rolling history of the last 20 events with timestamp
- Modifier tracking: Ctrl, Shift, Alt, Meta (Cmd on macOS, Win on Windows)
- Location detection: standard, left, right, numpad
- preventDefault stops the browser eating Ctrl+W, F11, Escape during testing
- Layout-independent — works identically on QWERTY, AZERTY, Dvorak, Spanish
- Useful for warranty evidence on dead/stuck/double-firing keys
- Tests N-key rollover on gaming keyboards (count keys you can hold at once)
- Helps pick the right `e.code` constant when writing keyboard shortcuts
Free. No signup. Your inputs stay in your browser. Ads via Google AdSense (consent required).