Skip to main content

Keyboard tester online

Press keys to verify every switch on your keyboard registers correctly.

Free & unlimitedWorks offline
Layout
Size
0/87 keys tested

ANSI US — 87 keys

  • ANSI has no key between left Shift and Z, and its Enter is a single wide 2.25u bar with the backslash key sitting above it.
  • Every KeyboardEvent.code name is defined against this layout, which is why a Danish Æ still reports as Semicolon.

Legends are drawn from the national layout; highlighting always follows KeyboardEvent.code, so the right physical key lights up whatever your OS layout is set to.

Last key pressed

Press any key...

NKRO / anti-ghosting

Currently held0
Max simultaneous0
NKROHold 6+ keys

NKRO means every key registers when pressed simultaneously. Hold 6+ keys to verify.

Chatter detection

No chatter detected

Keys firing keydown twice within 30ms are flagged.

Total presses0
Unique keys0

Event log

Press keys to see events...

All processing happens in your browser. No data is sent to any server.

This keyboard tester listens for keydown and keyup on the whole page and paints the matching key on a drawn board, so a switch that never fires is a key that never lights up. Two selectors decide what gets drawn: the layout standard (ANSI US, ISO UK, the three Nordic layouts, German QWERTZ, French AZERTY, Spanish, or Japanese JIS) sets the physical shape and the legends printed on the caps, and the size (Full, TKL, 75%, 65% or 60%) sets how many keys there are. Highlighting always follows KeyboardEvent.code, which names a physical position rather than a character, so the Æ key on a Danish board lights up correctly even though the browser calls it Semicolon. For every press the page prints the four identifiers a browser exposes, counts how many keys you can hold at once, flags a switch that fires twice inside 30 milliseconds, and tracks how many of the drawn keys you have covered.

Key facts about Keyboard tester online

Key facts about Keyboard tester online
Input sourcewindow keydown and keyup, captured in the capture phase
Layout standards drawnANSI US, ISO UK, ISO Danish, ISO Norwegian, ISO Swedish/Finnish, ISO German, ISO French AZERTY, ISO Spanish, JIS
Sizes drawnFull, TKL, 75%, 65% and 60% — 104/87 keys on ANSI, 105/88 on ISO, 109/92 on JIS
What drives the highlightKeyboardEvent.code, a physical position — the cap can read Æ while the event says Semicolon and the right key still lights
Values shown per presscode, key, keyCode, which, location, timestamp
location codes0 standard, 1 left, 2 right, 3 numpad — separates the two Shifts and Ctrls, and AltGr from left Alt
ISO versus ANSIISO adds IntlBackslash next to a short 1.25u left Shift and turns Enter into an L shape across two rows: 105 keys against ANSI's 104
JIS extrasIntlYen beside a 1u Backspace, IntlRo beside right Shift, and NonConvert, Convert and KanaMode around a 3.25u space bar
Dead keys´ ¨ ^ ` are drawn with a dotted underline; they fire keydown and keyup but type nothing until the next key lands
Chatter thresholda second keydown for the same code within 30 ms while it is still held
NKRO checkhighest number of codes held simultaneously; 6 or more is reported as a pass
Cannot be detectedFn, most OS-reserved combos, actuation force, travel distance, USB polling rate

What happens to your file

Nothing is uploaded. The page attaches a keydown and a keyup listener to the window inside this tab, keeps the pressed codes in React state and a couple of refs, and repaints the drawn board — there is no request to any server, no storage, and no analytics on the keystrokes. Because keystrokes never leave the tab, the tool also never sees what you type in other windows: it can only read keys pressed while this page has focus. Closing or reloading the tab discards the tested-key set, the press counts, the chatter warnings and the event log; there is nothing to clear afterwards.

About this tool

  1. 1

    Pick the layout standard

    Choose the national layout printed on your caps — ANSI US, ISO UK, Danish, Norwegian, Swedish/Finnish, German, French AZERTY, Spanish or JIS. This changes the legends and the physical shape, not what the browser reports.

  2. 2

    Pick the size

    Full, TKL, 75%, 65% or 60%, so the drawn board has the same key count as yours. Changing either selector clears the tested set, the press counts and the chatter list.

  3. 3

    Click the page once

    The listeners sit on the window of this tab, so the page has to have focus. If nothing lights up, click an empty part of the page and press a key again.

  4. 4

    Walk the whole board

    Work row by row. Each key you press turns green and stays green, and the counter shows tested keys out of the drawn total until it reads All tested.

  5. 5

    Read the last-key panel

    It prints code, key, keyCode, which and location. Use code to confirm the physical switch fired and key to confirm the OS layout is producing the character you expect.

  6. 6

    Hold six keys for NKRO

    Press and hold six or more keys at once. Max simultaneous records the highest count reached; if it stops at two or three, the board or its USB mode is limiting rollover.

  7. 7

    Watch the chatter panel

    Tap a suspect key thirty or forty times. A switch that re-fires within 30 ms of the previous keydown is listed with a count — that is the signature of a worn or bouncing switch.

  8. 8

    Turn on the heatmap

    After a long session the heatmap shades each key by how often it was pressed, which is a quick way to see whether a key you thought you pressed once actually registered three times.

Specs & compatibility
Browser supportany browser with KeyboardEvent.code — Chrome, Edge, Firefox, Safari 10.1+, Opera
keyCode and whichdeprecated but still populated by every current browser; shown for legacy debugging
AltGrthe right Alt key on every ISO board; it reports code AltRight with location 2, so it is testable like any other key
Safari quirkCmd-held presses often deliver no keyup, so keys can stay lit until you tap Reset
Numpad keysdrawn on the Full size only; Num Lock changes key, never code
60% caveatthe top-left key is drawn as Esc, which is what most 60% boards send; the ` / ½ / § legend lives on a Fn layer there, so use 65% or larger to test that switch
Connection typeUSB, PS/2, Bluetooth and 2.4 GHz wireless all look identical to the browser
Touch devicesa software keyboard fires events but has no physical switch to diagnose
Offlineworks with no network once the page has loaded
Account or installnone — no signup, no extension, no driver
  • Test in a plain browser window rather than a remote-desktop or VM session — the remote client intercepts keys before the browser sees them and produces false dead keys.
  • A key that lights in the wrong place usually means the wrong layout standard is selected, not that the keyboard is broken; ANSI and ISO differ around Enter, left Shift and backslash.
  • The small character in a cap's top-left corner is the Shift legend and the one in the bottom-right is the AltGr legend — a quick reference while you walk the board.
  • If Max simultaneous stalls at six, the board is in USB boot-protocol mode; many keyboards have a hardware switch or firmware toggle that turns full NKRO back on.
  • Chatter is intermittent. One clean run proves nothing — hammer the suspect key for a minute before you conclude the switch is fine.
  • Keys that produce nothing at all, such as Fn or a dedicated macro key, are handled inside the keyboard's own firmware and never reach the browser; that is not a fault.
  • Use location to tell the two Shift, Ctrl and Alt keys apart when a game only responds to one of them: left reports 1, right reports 2.
  • Nine layout standards including ISO Nordic, QWERTZ, AZERTY and JIS
  • Five sizes from Full 104/105 down to 60%
  • Correct ISO geometry: L-shaped Enter, short left Shift, extra IntlBackslash key
  • Live code, key, keyCode, which and location readout
  • NKRO and anti-ghosting counter with a six-key pass mark
  • Key chatter detection at a 30 ms threshold
  • Per-key press-count heatmap and a 50-event log
  • Checking a new mechanical keyboard for a dead switch while the return window is still open.
  • Confirming a suspected chattering key before ordering replacement switches or filing an RMA.
  • Testing a second-hand board at a meetup or before paying for it online.
  • Verifying that full N-key rollover actually works after flashing new firmware or flipping the board's NKRO switch.
  • Checking that an imported ANSI board really is missing the ISO key your national layout expects before you buy replacement keycaps.
  • Confirming that a Nordic, German or French board produces the right characters after an OS keyboard-layout change.
The code value names the physical position of the switch using a US-layout reference, and it never changes with your OS keyboard layout. The key value is the character your operating system actually produced. On a German QWERTZ board, pressing the cap marked Y gives code KeyZ and key y, which is exactly right — the switch in the QWERTY Z position is the one you pressed. Select the ISO German layout and the drawn board will print Y and Z the way your caps do while still highlighting from code.
Pick the one printed on your keycaps, then pick the size. The layout standard controls two things: the legends drawn on each cap, and the physical shape. ANSI has a wide single-row Enter and no key between left Shift and Z. ISO has an L-shaped Enter spanning two rows, a short left Shift and an extra key beside it, giving 105 keys instead of 104. JIS adds four more keys again. If the drawn board has a key your keyboard does not, or is missing one it has, the wrong standard is selected.
Yes. There are three Nordic options — Danish, Norwegian and Swedish/Finnish — plus ISO UK, German, French, Spanish and JIS, each drawn with the correct physical ISO shape. On the Danish layout Å sits on BracketLeft, Æ on Semicolon and Ø on Quote; Norwegian swaps Æ and Ø; Swedish and Finnish use Ö and Ä in the same two positions. There is also a dedicated Nordic page if that is the layout you always test.
Fn is resolved inside the keyboard's own controller. Holding it changes which scan code the board sends for the other keys, but Fn itself never sends a scan code of its own, so the operating system never sees it and neither does the browser. The same is true of some dedicated macro and RGB keys. If pressing Fn plus F5 produces a media event, you will see that event; you will never see Fn on its own, and that is not a fault in the keyboard.
Almost certainly not. The USB HID boot protocol reports at most six normal keys plus modifiers, and many keyboards default to it for BIOS compatibility. If the board advertises NKRO, look for a hardware switch on the underside, a firmware key combination, or a setting in its configuration software. A membrane keyboard may also genuinely ghost, in which case certain key groups will drop out before six. Try several different key groups to tell the two cases apart.
No. The browser delivers key events on its own event loop, not at the rate the keyboard reports over USB, so any number derived from event timing would describe the browser rather than the hardware. Actuation force, travel distance, debounce time in firmware and analogue Hall-effect travel are likewise invisible to a web page. What this tool can measure honestly is whether a switch registers, whether it double-fires within 30 ms, and how many keys register at once.

Put this keyboard tester on your own site

The widget is the same tester with the explanations stripped out. It is free to embed on any site, commercial or not, with no key and no limit. The only condition is that the link under the frame stays.

<iframe src="https://toolchamp.app/embed/keyboard-tester/" width="100%" height="480" loading="lazy" title="Keyboard Tester by ToolChamp"></iframe>
<p><a href="https://toolchamp.app/tool/keyboard-tester/">Keyboard Tester by ToolChamp</a></p>

The widget runs entirely in the visitor’s browser, sets no cookies and sends nothing to a server, so it needs no consent banner of its own on your page.

View all

Part of Hardware testers that run in your browser

Updated

We use anonymous analytics to improve ToolChamp. No personal data is stored or sold. Privacy Policy