InputTestHub

Keyboard Latency Test

Measures the delay between a key press and the frame that shows it, separating the dispatch delay from the wait for the next frame.

Device Tests Nothing uploaded No sign-up Free, unlimited
Device Tests tool
Click the panel, then press a key twenty or thirty times.
In short A web page can time two of the stages between a key press and the picture changing, and it should be honest about which two. The dispatch delay is the gap between the browser creating the event and JavaScript receiving it — normally well under a millisecond, and a large figure means the main thread was busy rather than that the keyboard is slow. Key-to-frame adds the wait for the next frame, and on an idle page that wait is most of the measurement: a press lands at a random point inside the frame interval, so on average it waits half a frame, which is 8.3 ms at 60 Hz and 3.5 ms at 144 Hz. That is why a high-refresh monitor feels more responsive with the same keyboard attached. What no web page can see is the keyboard's own scan and debounce, USB or Bluetooth polling, the compositor and the panel's pixel response — and together those usually outweigh everything measured in the browser. Treat a figure from any browser-based latency test as the browser's share, not as end-to-end input lag.

How to use the Keyboard Latency Test

  1. Click the panel so it has keyboard focus.
  2. Press any key twenty or thirty times at a comfortable pace.
  3. Read the median rather than any single press.
  4. Compare the key-to-frame figure against half the frame interval below it.

About the Keyboard Latency Test

The Keyboard Latency Test measures the delay between a key press and the frame that shows it, separating the dispatch delay from the wait for the next frame. It runs as plain JavaScript inside the page, which means there is no upload step, no queue and no size limit imposed by a server — the only limit is your own device.

What people use it for

  • Comparing two browsers on the same machine and the same keyboard.
  • Checking whether a page feels slow because the main thread is blocked.
  • Seeing how much of the delay is simply waiting for the next frame.

Details

Dispatch delayHandler entry minus event.timeStamp — typically under 1 ms
Key to frameThe requestAnimationFrame timestamp of the frame that paints the change
Frame intervalMeasured from consecutive frames, so the refresh rate is read not assumed
Auto-repeatIgnored — a held key is the operating system repeating, not a press
Not measuredKeyboard scan and debounce, USB polling, compositor, pixel response
The measurement only works because event.timeStamp and performance.now() share a time origin in current browsers. Where they do not — inside a cross-origin frame, and in a few older builds — subtracting one from the other would be meaningless, so the tool checks the first press and reports that the clocks disagree instead of printing a confident wrong number.

Where this tool stops

Measures the browser and the display, not the keyboard. Two keyboards on the same machine will give nearly the same figure here even when one feels markedly quicker, because the difference between them lives in the stages this cannot see.

Frequently asked questions

Is this my real input lag?
No, and no browser-based test can be. It measures the browser's share: how long the event took to reach JavaScript, and how long until the frame that shows the change. The keyboard's own scan and debounce, USB or Bluetooth polling, the compositor and the monitor's pixel response all happen where a web page has no visibility, and together they are usually the larger part. The Input Lag Budget Calculator adds up the whole chain with figures for each stage.
Why is the number roughly half a frame even on a fast machine?
Because that is the floor. A key press arrives at an arbitrary point inside the current frame and has to wait for the next one, so averaged over many presses the wait is half a frame interval — 8.3 ms at 60 Hz, 4.2 at 120, 3.5 at 144. Nothing in the browser removes it. A faster display is the only thing that shortens it.
My dispatch delay is several milliseconds. What does that mean?
That the main thread was busy when the key arrived. A heavy script, a large layout or an extension can all hold the event in the queue. It is the figure to watch when a page feels sluggish to type in, because unlike the frame wait it is something a developer can fix.
Why are Ctrl, Cmd, Tab and F5 ignored?
Because the tool prevents the default action of the keys it measures, and swallowing those would break navigation, reloading and keyboard accessibility on the page. They are passed through untouched.
Nothing appears when I press a key.
Either the panel does not have focus — click it once — or the tab is not producing frames, which happens when a window is minimised, in the background, or driven by an automation tool. The tool says so explicitly rather than showing a reading that has quietly stopped updating.
Are there any usage caps on the Keyboard Latency Test?
There is no cost and no cap. The Keyboard Latency Test is not a demo of a paid product, so nothing is held back or watermarked.
Is the Keyboard Latency Test safe to use with private information?
No. The Keyboard Latency Test runs entirely in your browser using JavaScript. Nothing is transmitted, logged or stored, which you can verify yourself in the Network tab of your browser's developer tools.
Who is the Keyboard Latency Test for?
Typical uses: comparing two browsers on the same machine and the same keyboard. Checking whether a page feels slow because the main thread is blocked. Seeing how much of the delay is simply waiting for the next frame. It is built for exactly those cases rather than being a general-purpose tool with this bolted on.
When is the Keyboard Latency Test not the right tool?
Measures the browser and the display, not the keyboard. Two keyboards on the same machine will give nearly the same figure here even when one feels markedly quicker, because the difference between them lives in the stages this cannot see. Knowing where a tool stops being trustworthy matters more than the cases where it works.
Which values should I know?
Dispatch delay is Handler entry minus <code>event.timeStamp</code> — typically under 1 ms. Key to frame is The requestAnimationFrame timestamp of the frame that paints the change. Frame interval is Measured from consecutive frames, so the refresh rate is read not assumed. These are printed on the page itself, so you do not have to take them on trust.
Why does the test start on its own?
No installation, no extension and no driver. The Keyboard Latency Test uses the browser's own device APIs and begins as soon as the page loads, so there is nothing to press first. Press Reset at any point to start over with a clean slate.

Related device tests tools

All 53
01

Keyboard Test

Test keyboard keys, inspect repeated inputs and review a local test summary. Get clear…

02

Online Keyboard Tester

A full-size keyboard tester that runs in the browser with nothing to install. Every key you…

03

TKL Keyboard Test

Tests a tenkeyless keyboard — the full layout minus the number pad — including the function…

04

60% Keyboard Test

Tests a compact 60% or 65% keyboard: the alphanumeric block, modifiers and arrows, without the…

05

Numpad Test

Tests every key on the number pad, including Num Lock, the operators and the separate Enter…

06

Arrow Key Test

Tests the four arrow keys on their own. Useful when only the direction keys have stopped…

07

Function Key Test

Tests the F1 to F12 row and shows which keys your browser intercepts before the page can see…

08

Modifier Key Test

Tests Shift, Ctrl, Alt, Meta, Caps Lock, Tab and Escape, telling the left and right versions…

09

Key Rollover Test (NKRO)

Measures how many keys your keyboard can register at once. Membrane boards usually stop at…

10

Keyboard Ghosting Test

Hold real gaming and typing combinations together and see whether every key arrives — or one…