Keyboard Tester

Keyboard Tester: Press Any Key to Test It

Every key you press lights up on the 104-key board below and stays lit once it has registered. The readout shows the exact event.key and event.code your browser receives — switch tabs to check rollover, chatter or the spacebar. Nothing you type leaves your browser.

0 / 104 keys testedPress any key — it stays green once it has registered.

Tab, Space, the arrows and the F-keys are captured here so you can test them. Keyboard-only users: press Tab twice in a row — the second press goes through and moves focus to the controls and links as usual.

Last key event

Press any key to see its key, code and keyCode here.

Press history (newest first)

No presses yet.

How to read the three values

A key press hands the browser three identifiers, and knowing which one to trust saves a lot of false diagnoses. event.code is the physical position — it never changes with keyboard language. event.key is what that position produces under your current OS layout. keyCode is a deprecated numeric ID that old software still uses. The tester shows all three for every press:

Values as delivered by current desktop browsers. keyCode is deprecated and its exact number can differ between browsers and platforms — press the key yourself to see what yours sends.
You pressevent.keyevent.codelegacy keyCode
A on a US layouta (A with Shift)KeyA65
The QWERTY-Q position on French AZERTYaKeyQ65 (follows the letter, not the position)
Left ShiftShiftShiftLeft16
Numpad 7 with NumLock on7Numpad7103
Spacebar" " (a space character)Space32

The practical rule: hardware problems live in event.code, layout problems live in event.key. A key that produces no event at all is a hardware or driver issue; a key that produces the right code but the wrong character is an OS keyboard-layout setting.

Keyboard sizes: what your board should have

Before declaring keys "dead", check they exist on your form factor. The tester draws a full-size ANSI board; if you own a tenkeyless or 60% keyboard, whole blocks will stay grey — that is correct, not a failure. Use the Show untested keys button to see exactly what has not registered, and ignore the sections your board physically lacks.

Typical key counts for US ANSI boards. Exact counts vary by model; ISO versions add one key.
SizeTypical keysWhat is missing vs full-sizeExpect grey in the tester
Full-size (100%)104NothingNothing — every key should light
Tenkeyless (TKL / 80%)87Numpad (17 keys)The right-hand numpad block
75%80–84Numpad; nav cluster squeezed into one columnNumpad + a few nav keys, model-dependent
65%66–68Numpad and F-row; keeps arrows and a few nav keysNumpad, F1–F12, most nav
60%61Numpad, F-row, arrows and nav — all reached via Fn layersEverything right of Enter plus the F-row

On compact boards, keys reached through an Fn layer report the code of the key they emulate: on a 60% board, Fn+1 sends F1, so the F1 cell lights even though there is no physical F1 key. That is how you verify Fn layers actually work.

Three worked examples

1. Finding a dead key

You suspect the E key. Press W, E, R in order: W lights, R lights, E stays grey and the readout shows no event for it. That is a hardware-side failure — switch, solder joint or matrix trace — because the browser received literally nothing. Counter-case: E lights up green and the readout says event.code: KeyE, but nothing appears in your text editor. Then the keyboard is fine and the culprit is software: a remapping tool, a language setting, or the editor itself.

2. Measuring rollover

In the Rollover tab, hold W, then add A, S, D, Space and K one at a time — six normal keys, no modifiers. The "held now" count climbs 1 → 2 → 3 → 4 → 5 → 6. Now add J while everything stays down: if the count refuses to pass 6 no matter which extra key you choose, the board is operating as 6-key rollover — normal for the standard USB protocol. Keep modifiers out of that count: Shift, Ctrl, Alt and Win travel in a separate bitmask of the USB report, so the same 6KRO board still reaches 8 when you add two of them on top of the six — expected, not proof of NKRO. If some specific trios (often three keys forming an L-shape on the board) cap the count at 2 while other trios reach 3, that is a matrix limitation, the thing gamers call ghosting or blocking — full explainer here.

3. Catching a chattering switch

Your document sometimes shows "tthe" when you typed "the". In the Chatter tab with the default 80 ms threshold, type a few normal sentences. A healthy board produces zero flags because even fast typing leaves >100 ms between repeats of the same letter. A worn switch produces flags like KeyT — 28 ms: no human intent fires the same key twice in 28 ms, so that is contact bounce escaping the firmware's debounce. Details and fixes on the keyboard chatter test page.

What this test can and cannot tell you

  • It can prove a key's full path works: switch → controller → USB/Bluetooth → OS → browser.
  • It can distinguish hardware failures (no event) from layout problems (wrong character, right code).
  • It can catch chatter and measure real rollover as delivered to applications.
  • It cannot see the Fn key, power/eject keys, or anything the keyboard controller keeps to itself.
  • It cannot block reserved shortcuts (Ctrl+W, Win-key combos) — those keys register first, then the OS acts.
  • It cannot tell whether a fault is the keyboard or the port — swap USB ports or test the same board on another machine to split that.

Common uses

  • Pre-purchase / warranty checks: run every key on a second-hand or newly delivered keyboard in under two minutes.
  • After a spill: find exactly which keys stopped registering instead of guessing while typing.
  • Laptop diagnostics: separate a dead row (ribbon cable) from single dead keys — the laptop keyboard test covers laptop-specific quirks like Fn lock and media rows.
  • Gaming setups: verify your movement-plus-ability combos all register with the rollover test.
  • Double-typing complaints: confirm chatter objectively with the chatter detector before opening a switch or filing an RMA.
  • Spacebar wear: the space key takes more presses than any letter — give it a dedicated run on the spacebar test.

Frequently asked questions

Why does my Fn key not light up?

Because it never reaches the browser. On almost every keyboard the Fn key is handled inside the keyboard's own controller: it modifies what the other keys send and does not emit a key event of its own. No web-based tester can see it. The way to check Fn is indirect — hold Fn and press an F-key, and see whether the browser receives the F-key, a media action, or nothing. The laptop keyboard test page walks through this.

Some combinations open browser menus or close the tab. Is my keyboard broken?

No. This page suppresses the default action of keys it safely can (Space scrolling, arrow scrolling, Backspace navigation, the focus jump on Tab, F-key shortcuts where the browser allows it), but browsers reserve some shortcuts — Ctrl+W, Ctrl+T, F11 in some browsers, and the OS-level Win key combinations — and a web page is not allowed to block them. The key still registers in the tester before the shortcut fires, which is what you are here to check. If you navigate with the keyboard rather than a mouse: Tab is captured only until you press it twice in a row, and the second press moves focus normally again — the tester states this above the board and offers a button to re-capture Tab.

Why does the counter stop at 6 keys when I hold more?

Most likely your keyboard is 6-key rollover (6KRO), the classic limit of the standard USB keyboard protocol: six simultaneous normal keys plus modifiers like Shift and Ctrl. Some keyboards switch to NKRO (n-key rollover) mode, where every key reports independently. Occasionally the limit is lower on a cheap membrane matrix — see the key rollover test for how to tell rollover limits apart from ghosting.

What is the difference between event.key and event.code?

event.code names the physical position of the key (KeyA is always the same physical key regardless of language layout), while event.key is the character or action that position produces under your current OS layout. If a key lights up here but types the wrong character in a document, the hardware is fine and your OS layout mapping is the thing to fix. The legacy keyCode number is deprecated but still shown because a lot of older software and game engines use it.

Is anything I type recorded or sent anywhere?

No. The tester is a static page: every key event is processed by JavaScript in your browser and shown back to you. There is no server component, no account, and no transmission of your keystrokes — we never receive them. You can verify this in your browser's network tab: no requests fire while you type.

Does the tester work with ISO, JIS or non-US layouts?

Yes — every key you press still registers and appears in the event readout and history. The on-screen board draws the 104-key US ANSI layout, so a key that only exists on your layout (for example the extra key next to the left Shift on ISO boards, code IntlBackslash) is counted in the "extra keys" tally instead of lighting a drawn key. The pass/fail information is identical; only the picture differs.

A key lights up here but does not work in my game. Why?

The tester proves the chain keyboard → OS → browser delivered the key. If a game ignores it, the problem is past that chain: the game's input bindings, a conflicting overlay or macro tool, or the game reading raw input from a different device (common with multiple keyboards or KVM switches attached). Rebinding the key inside the game is the usual fix.

Link to this tool

Helping someone debug a keyboard in a forum or wiki? Copy this snippet:

<a href="https://keytester.pages.dev/">Keyboard Tester — test every key online</a>