Contact

Keyboard Tester

See which keys are down, plus the last key, code, and modifiers. Built for a physical keyboard.

Keys light when they are down. The readout uses event.code (physical) and event.key (character). Colour is not the only signal — a ● marks a held key.

EscF1F2F3F4F5F6F7F8F9F10F11F12
`1234567890-=Bksp
TabQWERTYUIOP[]\
CapsASDFGHJKL;'Enter
ShiftZXCVBNM,./Shift
CtrlMetaAltSpaceAltCtrl←↑↓→

Held: none

Press a key.

Worked example

Press A and that key lights with a ● until you release it. The line under the keyboard reads key “a”, code KeyA, and any modifiers. F-keys, arrows, and both Shifts are on the layout; a key that is not drawn still updates the last-key line.

FAQ

Does this block browser shortcuts?
Not by default. Tick “Capture keys on this page” to preventDefault while this tab is focused — useful for testing Ctrl and F5 without the browser eating them.
Which keys are drawn?
Esc through F12, the typewriter block, modifiers, Space, and arrows. The readout uses event.code (physical) and event.key (character).
Why is a phone a poor fit?
An on-screen keyboard is not a full hardware keyboard. Use a physical keyboard on a computer.