About the Handiwork Keyboard Tester
Keyboard Tester displays the keyboard events that reach the page. A supported on-screen key lights while pressed and remains marked after release, while the event readout shows key, code, legacy keyCode, and keyboard location. Track layout coverage, review or copy recent key presses, and optionally capture common browser shortcuts during a focused test. This can reveal missing or unexpected browser events, but it cannot by itself distinguish a hardware fault from software behavior.
How to use the Handiwork Keyboard Tester
- Choose whether to capture common browser shortcuts, then close any application that could be harmed by accidental key presses.
- Press and release keys individually while watching the live event and tested-key state.
- Review the layout progress and recent-key history, then repeat suspicious keys in another trusted diagnostic before concluding that hardware is defective.
key, code, keyCode, and location
KeyboardEvent.key describes the interpreted key value and can change with Shift, layout, or input method. KeyboardEvent.code identifies a physical-position code such as KeyA or Digit1. location distinguishes standard, left, right, and numpad positions. keyCode is displayed for legacy debugging but is deprecated and should not be the basis of new keyboard handling.
Worked layout example
On a typical US layout, pressing the physical A position reports code KeyA and key a; holding Shift changes key to A while code remains KeyA. On another keyboard layout, that physical position can produce a different key value while retaining its code. Shortcut designs should choose the property that matches their intended behavior.
Why some keys never reach the page
The operating system, browser, keyboard driver, or device firmware can intercept media keys, function shortcuts, power controls, screenshots, secure attention sequences, and accessibility commands. A missing event therefore does not prove the switch is broken. Shortcut capture can prevent several common page actions during testing, but system-reserved combinations may still be unavailable. The compact visual layout omits numpad keycaps, although received numpad events appear in the readout and history.
Privacy and safe testing
Events are handled in browser memory and this tool does not upload a typed sequence. Even so, do not type passwords or recovery codes into a keyboard-testing page: extensions, shared screens, clipboard tools, accessibility software, or a compromised device can observe input outside this application’s design.
Assumptions and limitations
- A browser event test cannot conclusively diagnose keyboard hardware.
- Some operating-system, browser, media, function, and security shortcuts are intercepted before the page receives them.
- The on-screen board is a compact ANSI-style layout and does not visually include every international, ergonomic, media, or numpad key.
- keyCode is deprecated and is shown only for legacy inspection.
- Operating-system detection and modifier labels are best-effort and can be wrong in privacy-restricted or remote environments.
Sources and standards
These authoritative references were used to verify the method and guidance on this page.
Frequently asked questions
Does a missing key event prove the key is broken?
No. The operating system, browser, driver, firmware, remote session, or another shortcut handler may intercept it. Confirm the behavior elsewhere.
What is the difference between key and code?
key is the interpreted value, while code identifies the physical-position code. Layout and modifiers can change key without changing code.
Why is keyCode marked legacy?
keyCode is deprecated and inconsistent across environments. New code should normally use key or code according to the intended interaction.
Why is my numpad not shown?
The compact on-screen layout omits numpad keycaps, but received numpad events still appear with their code and Numpad location.
Does the tester store what I type?
The tool keeps tested-key state and up to 12 recent key presses only in the current page memory and does not upload them. Reset or refresh to clear them, and never enter secrets into diagnostic pages.