Keyboard Tester
Press every key and watch the map fill in — this shows which keys reach your browser, which is not always the same as which keys your keyboard sends.
Click the keyboard below (or use the button above) to give it keyboard focus. While it has focus it swallows key presses, so Tab, Space and Enter are tested instead of navigating the page. Press Esc to hand control back.
The interactive keyboard map loads with JavaScript enabled.
Not tested yet Registered at least once Held down right now Cannot reach the browser (Fn)
Coverage
0 / 0 keys tested (0%)
Coverage counts distinct physical keys on the selected layout that produced at least one event. Fn is excluded because it can never produce one.
Still untested
Key detail
Click any key on the map to see how many times it was pressed, and when it was first and last seen.
- Key
- —
- Event code
- —
- Times pressed
- 0
- Auto-repeat events
- 0
- First seen
- —
- Last seen
- —
Keys your browser reported that are not on this layout
This usually means one of three things: the selected form factor is smaller than your actual keyboard, the key is a media, macro or OEM key that no standard layout draws, or your keyboard sends a code from a different physical layout. It is not a fault by itself — the key was received, it simply has nowhere to light up.
Advanced data — every key this session recorded
No events excluded.
| Key | Code | Presses | Repeats | First seen | Last seen | On layout |
|---|---|---|---|---|---|---|
| No keys recorded yet. | ||||||
Times are measured from the moment this page finished loading, or from your last reset.
Measurement environment
Timer resolution: — High-resolution timing: — Browser: — Platform: —
This browser rounds its clock to whole milliseconds, so every time shown on this page is quantised to 1 ms steps.
These conditions affect the timestamps shown for each key. A browser that rounds its clock to 1 ms cannot resolve sub-millisecond differences, so the first-seen and last-seen times are quantised in steps that size. How we measure.
What this test cannot tell you
This runs in a web browser, so it can only see key events after your operating system has decided to forward them. It cannot see keys the OS or the browser keeps for itself, it cannot see the Fn key, and it cannot inspect switches, keyboard firmware, the key matrix, the cable or a wireless link. A key that stays grey here is not proof that the key is broken, and a key that lights up is only proof that one event arrived — not that the switch is in good health.
How to test every key properly
Start by matching the map to your hardware: choose the form factor, then the printed legend layout, then whether modifier keys should be labelled the Windows or the macOS way. The choice is remembered on this device.
Then give the map keyboard focus and work across the board row by row rather than jumping around — it is much easier to spot a gap in a row you have just finished than in a random pattern. Every key that produces an event latches green and stays green, so you can let go and keep going. Press and hold a key if you also want to see whether it repeats.
When you are done, the coverage panel lists what is left. Read that list against the section below before assuming anything is wrong.
Why some keys never reach the browser
This is the part most online key testers quietly skip. A web page never talks to your keyboard. It receives whatever the operating system, and then the browser, choose to pass on, and several keys are deliberately withheld:
- Fn is handled inside the keyboard's own controller. It changes which code the keyboard sends rather than sending a code of its own, so in almost every case there is simply no event to receive.
- Keys the OS reserves. Ctrl+Alt+Delete on Windows is handled below the application layer and cannot be intercepted by any ordinary program. Alt+Tab, Command+Tab, most Windows-key and Command-key shortcuts, and Command+Space are taken by the window manager or the desktop environment first.
- Keys the browser reserves. F5, F11, F12, Ctrl+W, Ctrl+T and Ctrl+N are usually acted on by the browser itself. Some reach the page as well, some do not, and it varies by browser and platform.
- Laptop F-rows in media mode. If your F-row currently acts as brightness and volume controls, pressing it may adjust hardware and send nothing at all, or send a media code instead of F1–F12. The Fn lock usually switches this.
- Media, macro and OEM keys. Volume, play/pause, calculator, sleep and vendor-specific keys are often consumed by the OS, or arrive under a code that no standard layout draws — those show up in the unmapped panel instead.
So an untested key is a prompt to look further, not a verdict. If a key is on this list, the only fair test is somewhere the OS is not standing in the way.
What an unregistered key can actually mean
If a key produced nothing and it is not explained above, work through the cheap causes before the expensive ones:
- Wrong layout selected here. Choosing a TKL map while using a full-size board leaves the whole numpad drawn as untested, and vice versa.
- Remapping software or a firmware layer. PowerToys, Karabiner, vendor software and QMK/VIA layers can send a different code or nothing at all. A key that is remapped is working perfectly — it is just not saying what you expect.
- Connection. Try another cable, another port, and for wireless boards a fresh battery and a re-pair. Intermittent whole-row failures often come from the cable.
- The key itself. If the key produces nothing in other applications too, then a worn or contaminated switch, a bad solder joint, or a broken row or column in the key matrix is a possible cause. A whole row or column failing together points at the matrix rather than at individual switches.
The opposite problem — a key that registers twice from one press, or one that never releases — is covered by the chatter test and the stuck key test.
Physical position versus printed legend
Browsers report two different things for every key press: the character it produces, and the physical position it came from. This tester keys everything off the position, because that is the value that stays stable no matter which logical layout you use.
A French AZERTY user pressing the key printed A still reports the position named
KeyQ. A Dvorak user pressing O still reports KeyS. That is
why switching the legend menu changes only what is drawn on the caps — detection is unaffected.
If your remap is done in keyboard firmware rather than in the OS, the reported positions change
with it, which is worth knowing before you conclude that half the board is faulty.
Coverage and unmapped keys, explained
Coverage is the number of distinct physical keys on the selected layout that produced at least one event, over the total number of keys that layout can report. Fn is drawn but left out of the total, because counting a key that can never register would make full coverage impossible.
The unmapped panel is the mirror image: codes your browser reported that the selected layout has no key for. The usual causes are a form factor smaller than your real keyboard, an extra macro or media key, or an ISO key on a map set to ANSI. Switching the form factor or legend layout normally makes them disappear. Your coverage and press counts survive that switch — the map is redrawn and every key you have already tested is restored.
For a deeper look at a single key, including its raw event data, use the keyboard key test, or read the guide on browser keyboard event timing.
Related keyboard tests
Frequently asked questions
Why does a key show as untested when it clearly works?
Because a web page only sees the key events your operating system chooses to forward to the browser. Windows, macOS and Linux keep several keys and combinations for themselves — Ctrl+Alt+Delete, Alt+Tab, Command+Tab, most Windows-key and Command-key shortcuts — and browsers keep others, such as F5, F11, F12 and Ctrl+W. Those keys can be perfectly healthy and still never appear here.
Why does the Fn key never register?
Fn is resolved inside the keyboard's own controller before anything is sent to the computer. It changes which key code the keyboard transmits rather than sending a code of its own, so there is normally no event for a browser to receive. This tester draws Fn as a dead key and leaves it out of the coverage count.
The legends on the map do not match my keyboard. What is wrong?
Nothing is wrong with the detection. Pick your form factor, legend layout and platform from the three menus above the map. Key detection uses the physical key position reported by the browser, which never changes with your logical layout, so only the printed legends on the map change when you switch between QWERTY, AZERTY, QWERTZ, Dvorak and Colemak.
What does it mean if one key never registers?
It means the browser received no event for that key during this session, which is a starting point rather than a verdict. Check the selected layout first, then any remapping software or keyboard firmware layer, then a different cable, port or receiver. If the key still produces nothing in other applications, a faulty switch or a broken matrix connection is one possible cause.
Can this tester tell me whether my keyboard is broken?
No. It can only tell you which key events reached this browser. It cannot inspect switches, firmware, the key matrix, the cable or the wireless link, and it cannot see keys the operating system intercepts. Use it to narrow down where to look, not as a hardware diagnosis.
Should I use this page or the single key test?
Use this page to sweep the whole board and find which keys never arrive — it tracks coverage across every key on the selected layout. Use the keyboard key test when you already suspect one specific key and want its full event detail: key, code, location, repeat state, hold duration and a press-by-press log for that key alone. Start here to find the problem, go there to inspect it.
Are my keystrokes uploaded anywhere?
No. The test runs entirely in your browser. Nothing you press is sent to a server, and the only data stored on your device is your chosen layout, kept in local storage so the map looks the same on your next visit.