Keyboard Latency Test: From Key Press to the Next Frame

Every press is timed from the moment the browser receives it until the page's code for the next frame runs, with the median, jitter and range.

Size
Keys
Shape
F-keys

Listening: press any key. Hold Esc for 1 second to release the keyboard (e.g. to use Tab).

Keys tested
0%
0 of 104 keys
Last key
–
press any key
Held now / max
0 / 0
keys at the same time
Key presses
0
No chatter found
EscF1F2F3F4F5F6F7F8F9F10F11F12PrtScScrLkPause~`!1@2#3$4%5^6&7*8(9)0_-+=BackspaceTabQWERTYUIOP{[}]|\Caps LockASDFGHJKL:;"'EnterShiftZXCVBNM<,>.?/ShiftCtrlWinAltAltWinMenuCtrlInsHomePgUpDelEndPgDn↑←↓→Num/*−789+456123Enter0.

Tip: click a key in the picture if your keyboard doesn’t have it, so it doesn’t count against the score.

Timing tests

Press any key 20 times or more, at your own pace. Each press is timed from the moment the browser received it until the page’s code for the next frame runs, just before the browser draws the key lit up.

Median
–
event to next animation frame
Average
–
min – max
Jitter
–
standard deviation
Presses
0
measuring your display

Press a key to start.

Included: the operating system and browser passing the key on, the page handling it, and waiting for the next animation frame. Not included: the switch and its debounce, the USB polling interval, and the time the browser and display take to draw and show the frame. That end-to-end input lag needs a high-speed camera or a light sensor on the screen.

Chatter (double-typing) detector

A worn or dirty switch can register one press twice. Type normally for a minute, then press any suspect key 20–30 times.

Rollover & ghosting test

Held now0
Most at once0
  • none
Best combination:
  • –

Hold down more and more keys (try ASDFJKL). If the count stops at 6 of these, the keyboard is 6-key rollover. Shift, Ctrl, Alt and Win don’t count toward that limit.

Event log

EventkeycodekeyCodeLocationRepeatTime (s)Δ ms
Key events appear here.

What this test times

When a key goes down, the keyboard reports it at its next polling interval, the operating system passes it to the browser, and the browser gives the page a key event with a timestamp. The tester lights the key up and asks the browser to call it back before it draws the next frame (an animation-frame callback); the time from the event’s timestamp to that callback is one sample. Twenty presses give a steady median, and the jitter figure shows how much the samples vary.

The tester also counts the display’s frame time from 60 frames, because it dominates the result: on a 60 Hz screen a press waits up to 16.7 ms for the next frame, on a 144 Hz screen up to 6.9 ms.

What it can’t see

A web page only learns about a key once the browser has it, and only knows when it is about to draw a frame, not when the browser finishes it or when its light leaves the panel. So the switch travel and debounce, the USB polling wait (half an interval on average) and the display’s scan-out and pixel response are all outside this number. That makes it a good test of the computer side: a busy system, a heavy browser tab or a slow remote-desktop link shows up as a high median or a long tail in the histogram. It is not a measure of the keyboard’s own speed; for that, check the polling rate and the switch and debounce figures from reviews.

Getting a lower number

A higher refresh rate helps most, since waiting for the frame is the biggest share. After that: close background programs, keep the browser tab in the foreground, and turn off power-saving modes that park the processor. If single presses sit far to the right of the histogram, run the test again with nothing else open: a steady median with a short tail is what a healthy system looks like.

Where the time goes between a press and the screen

Typical figures for each stage of end-to-end input lag, and whether this test includes it.

StageTypical timeTimed here
Switch and debounce0–10 ms (QMK’s default debounce is 5 ms)No
USB pollinghalf an interval on average: 4 ms at 125 Hz, 0.5 ms at 1000 HzNo
Operating system and browserusually 1–5 msYes
Page handling the keywell under 1 ms hereYes
Waiting for the next framehalf a frame on average: 8.3 ms at 60 Hz, 2.1 ms at 240 HzYes
Compositing, scan-out and pixel responseone frame or more, plus the panel’s response timeNo

Keyboard TesterSomeone shared their result

Suggested