Layout

ISO is the European layout: 105 keys, with a tall two-row Enter. ANSI is the American one: 105 minus one, with a wide flat Enter.

Click here, or reach it with Tab, to start.

EscF1F2F3F4F5F6F7F8F9F10F11F12`1234567890−=BackspaceTabQWERTYUIOP[]EnterCaps LockASDFGHJKL;'\Shift<ZXCVBNM,./ShiftCtrlWin/CmdAltSpaceAltWin/CmdMenuCtrl
PrtScScroll LockPauseInsHomePg UpDeleteEndPg Dn↑←↓→
Num Lock/×−789+456123Enter0.

While this region has focus, the keys you press light up in the drawing and do not do their normal job. Press Escape to leave.

event.code—

event.key—

Held now0

Most at once0

Keys seen (0)

The keys you press appear here.

What cannot be tested from here

  • F11
  • Escape
  • Ctrl+W
  • Ctrl+T
  • Ctrl+N
  • Ctrl+Shift+W
  • Alt+F4
  • Alt+Tab
  • Meta+Tab
  • Meta+L
  • Ctrl+Alt+Canc

The browser and the system take these combinations before the page sees them. They do not arrive, and there is no way to stop that from here.

Most at once is the rollover: how many keys your keyboard can send at the same time. Press as many as you can with both hands. Under six is a cheap matrix, beyond that it is N-key rollover.

The JIS layout is not drawn: its extra keys do not appear here.

Everything happens in your browser. Nothing is sent anywhere.

How it works

  1. Pick your keyboard layout, ISO or ANSI.
  2. Click the drawing, or reach it with Tab: from then on the keys are its own.
  3. Press keys. Escape leaves and gives the page back.

What it does

It draws a full keyboard and lights up the keys you press. It answers two questions: does this key respond? and how many can I hold at once?

For every key pressed it shows event.code, the name of its physical position.

The three states of the drawing

  • Held now: filled.
  • Already tried this session: lit border.
  • Never touched: off.

The second one is the one that matters. You test a keyboard to find the key that does not respond, and with only “held now” you would have to be looking at the drawing at the right instant. With the memory, you run over every key and what stays off at the end is what never arrived.

About rollover

“Most at once” counts how many keys your keyboard sent at the same time. Press as many as you can with both hands and see where it stops.

Under six is a cheap matrix: the keys are wired in a grid and certain combinations block each other. Beyond that, the keyboard claims N-key rollover and sends them all.

Auto-repeat does not count. Holding a key down makes the browser fire the event about ten times a second: adding those up would say “twelve keys at once” for one finger.

About ISO and ANSI

They are two geometries, not two languages. An Italian keyboard is ISO, a German one is ISO, an American one is ANSI. There are three differences:

  • Enter is wide and flat on ANSI, two rows tall on ISO;
  • the backslash sits above Enter on ANSI and beside it on ISO;
  • ISO has one extra key between left Shift and Z, which is why it has 105 keys against 104.

About code rather than key

event.code is the position of the key and does not change with your system layout: the key under your left index finger is KeyF on an Italian keyboard, on a French AZERTY and on Dvorak. event.key is the character produced, and that does change.

A keyboard test tests the keys, not the map. That is why the drawing follows code. key is shown alongside anyway, because seeing the two together is useful.

What cannot be tested

Some combinations never reach the page: the browser or the system takes them first. They are listed under the drawing.

There is no way to capture them from here, and trying would only give the illusion of having caught them. A key that does not light up because the system kept it and a broken key are two different things, and this page says which ones are the first kind.

The JIS layout is not drawn. Its extra keys exist and do not appear here: press one and the page says so, rather than leaving it unanswered.

About your data

Everything happens in your browser. Nothing you press is stored or sent.

From here you also go here

Stream countdown

A countdown to put on screen with OBS. Length or clock time, text above and below, transparent background.

Gaming and streaming

Webcam and microphone test

Check that your camera and microphone work, with the detected resolution and a live audio level. Nothing is recorded.

Gaming and streaming

Random picker

Write a list, draw one entry. Cryptographic draw, an option to remove whoever has come up, shareable link.

Gaming and streaming

All tools