Keyboard Tester – Online Key Test & Event Inspector
Test every key on your keyboard with a full 104-key virtual ANSI layout, interactive neon key glows, and detailed event metrics.
Open ToolPress any key to inspect JavaScript KeyboardEvent properties: event.key, event.code, keyCode / which, location, and modifier states with zero lag.
Instantly captures JavaScript KeyboardEvent properties (event.key, event.code, keyCode, location) and modifier states.
No key events recorded yet. Press any key to start inspecting.

Turn inspected event.code and virtual keycode values into global hotkey triggers across your entire operating system.
Type any key, number, function key, or modifier on your physical keyboard.
Inspect event.key, event.code, keyCode/which values, and keyboard location in the real-time HUD cards.
Click on any value to copy it directly to your clipboard or review the 10 most recent key events in the table.
Displays modern standard event.key and event.code alongside legacy keyCode and which integers.
Real-time active indicators for Ctrl, Shift, Alt/Option, and Meta (Command/Windows) keys.
Differentiates between Standard, Left, Right, and Numpad instances of keys like Shift, Ctrl, and Enter.
Keep track of sequential key combos and keystroke order with precise timestamp logs.
Standard W3C KeyboardEvent property definitions, legacy deprecation status, and location enum mappings.
| Event Property | Type & Specification | Standard Value Example | W3C Status & Purpose |
|---|---|---|---|
event.key | String (DOM Level 3) | "h", "Enter", "ArrowUp" | Standard (Represents printed character or semantic key value) |
event.code | String (DOM Level 3) | "KeyH", "Digit1", "NumpadEnter" | Standard (Represents physical key position on keyboard layout) |
event.keyCode / which | Integer (Legacy) | 72, 13, 32 | Deprecated (Inconsistent across non-QWERTY international layouts) |
event.location | Number (0, 1, 2, 3) | 0 (Standard), 1 (Left), 2 (Right), 3 (Numpad) | Standard (Identifies physical origin of duplicated keys like Shift or Enter) |
Clear answers about using this tool and automating workflows with RunMacro.
event.key represents the character or semantic value produced by the key press (taking into account Shift or keyboard layout modifications, such as 'a' vs 'A'), while event.code represents the physical position of the key on the keyboard hardware (such as 'KeyA'), which remains constant regardless of layout.
event.keyCode and event.which are deprecated in the W3C DOM Level 3 specification because they rely on numeric ASCII-like codes that behave inconsistently across international keyboard layouts (AZERTY, QWERTZ, Dvorak) and mobile virtual keyboards. Developers should use event.key or event.code instead.
Yes. This inspector captures all standard keys including Function keys (F1 through F12), Escape, Backspace, Tab, Space, Enter, and arrow navigation keys with zero lag.
RunMacro Macro Recorder uses hardware scan codes (matching event.code) to bind global hotkeys and automate desktop keystroke execution reliably across different software environments and languages.
Explore other helpful browser-based utilities in the same category.