Keyboard Tester

Press each key and watch it light up. Whatever stays dark is the key that is broken.

Runs entirely in your browser

Loading the tool…

Start pressing. Nothing to click first: a key lights up while it is down and stays marked once it has been seen, so whatever is still blank is the key that is not working.

  • 0Keys seen
  • 0Held down
  • 0Presses

The last key
code
key
keyCode
Repeating
Modifiers
Keys not on this layout

    Media keys, laptop function keys and anything your keyboard sends that a standard board does not have will be listed here.

    Start pressing. There is nothing to click first: the page listens as soon as it loads. Each key lights up while it is held and stays marked once it has been seen, so after a run down the board the keys still blank are the ones that are not reporting anything at all.

    That is the useful part. A dead key is silent by definition, so the only way to find one is to notice what did not happen, and a picture of the whole board makes that obvious in a way that typing into a text box does not.

    A stuck key is the opposite problem and is caught here too. If a key sends its press and never its release, it stays lit and the page names it, which is the answer when a machine has started typing on its own or a modifier seems permanently held.

    Keys are identified by their position rather than by the letter printed on them, so this reads the same on a QWERTY, an AZERTY or a Dvorak keyboard: the key beside Tab is the one beside Tab. The panel below shows exactly what your browser received for the last press, which is what to quote if you are reporting a fault.

    Checking other hardware while you are here: the microphone and camera test covers the rest of a video call, and the typing speed test is the one to use once you know every key works.

    How to use it

    1. Open the page. It is already listening.
    2. Press every key, including the modifiers and the numeric keypad.
    3. Any key that never lights up is not reaching your browser.

    Questions

    How do I know a key is dead?

    It never lights up. Work along each row and watch the picture rather than the screen you are typing into: the counter says how many of the keys on this layout you have pressed, and whatever is still blank at the end is not sending anything.

    How do I know a key is stuck?

    It stays lit after you let go, and the page names it. A key that is stuck sends its press and never its release, which is also why a stuck modifier makes everything else behave strangely. Cleaning under the keycap fixes most of them.

    Why can I not test some keys?

    Because the browser or the operating system takes them first. F11, F12, Ctrl+W, Alt+Tab and the Windows or Command key on its own are handled before a page sees them, and no website can change that. Everything else is captured while the tick box is on.

    Why does my keypad not respond?

    Almost always because Num Lock is off, in which case those keys send Home, End and the arrows instead, and you will see those light up rather than the numbers. Laptops without a keypad send nothing at all for that block.

    My key prints the wrong letter. Is that a fault?

    No, that is a layout, not a fault. This board shows physical positions, so on an AZERTY keyboard the key beside Tab still lights as Q even though it types A. If the letters are wrong everywhere, change the keyboard layout in your operating system rather than the keyboard.

    Is what I type recorded?

    No. The page watches for key presses to light the picture up and counts them, and that is all: nothing is stored and nothing is sent anywhere. It works with the connection off, which is the easiest way to be sure.

    It says a key is held that I am not touching.

    Then something is holding it. A key can stick physically, a spilled drink can bridge a contact, and a faulty cable or a flat wireless battery can drop the release. Try the same key on another machine to tell a keyboard fault from a computer one.

    Your data stays on your device

    Everything above runs inside your browser as WebAssembly compiled from Rust. Nothing you type is uploaded, logged or stored on a server. You can load this page once, go offline, and it still works.

    The page does load ads, which is how it is paid for, and that script is the only thing here that fetches anything. It sees that the page was opened. It does not see what you type or the file you chose, because neither ever leaves this tab.