Press any key and it lights up instantly. Green means detected, red outline means never seen. Also measures input latency in milliseconds and your typing speed.
Click anywhere on this page first — the browser needs focus before it can report keys. Then start pressing.
This lights up as you type. Any key that stays unlit after a full pass is dead, faulty, or not present on this layout.
Legend: green = currently held · blue outline = detected · red outline = not yet pressed
Type in the box for 15 seconds. Standard English is 40 WPM; 60+ is fast, 80+ is excellent.
Every key you press reports a code (physical position, e.g. KeyA) and a key (the character produced, e.g. a). If the key lights up but the character is wrong, your keyboard layout is mismatched — a common problem when a UK or US set is plugged into a system expecting the other.
Latency here is the delay between the browser receiving the event and processing it, which reflects browser and system load more than the keyboard hardware. Consistently high values mean something is competing for your CPU.
Layout mismatch. Windows: Settings → Time & Language → Language → Keyboard layout. macOS: System Settings → Keyboard → Input Sources. Set it to match the physical legends on the keys.
Filter Keys is enabled. Turn it off: Windows → Settings → Accessibility → Keyboard → Filter Keys.
Usually debris under the keycap. Power off, pull the cap, and clean with compressed air. If a specific key never lights up after cleaning, the switch has failed and the key needs replacing.
Wrist rests or desk edges resting on the keyboard can trigger bounce. Raise the keyboard and retest.
Only inside the typing-speed box, and only in memory on this page. Nothing is transmitted or stored.
This is a generic ANSI/ISO layout. Laptops with smaller layouts and some compact keyboards will have keys that legitimately do not exist here.
Under 8 ms is normal for a browser. Above 30 ms sustained usually means a heavy background process or a low polling rate on the keyboard.
Standard method: gross characters divided by five gives words, divided by minutes elapsed. Accuracy is typed characters compared against the original text.