Hold-duration series
The line shows each complete sample and the dashed line marks this round's median.
Hold a chosen key and release it repeatedly to measure the duration of each browser keyboard event.
Key and sample settings
Use a code such as Space, KeyA, or ShiftLeft. Tab is not captured.
Enter a valid KeyboardEvent.code, such as Space, KeyA, or ShiftLeft.
Use 5–100 valid presses. Ten to twenty samples are a practical starting point.
Enter an integer from 5 to 100.
Enter values within the allowed range and keep the short threshold below the long threshold.
Enter values within the allowed range and keep the short threshold below the long threshold.
PhaseWaiting to start
Set the target key and start a test.
Complete at least one valid press to see results; 10–20 samples are useful for a steadier comparison.
The line shows each complete sample and the dashed line marks this round's median.
A sample is H = keyup timestamp − first non-repeat keydown timestamp. Auto-repeat does not create a new sample; median, P10/P90, and MAD use the same complete event pairs.
Unrounded millisecond values are kept internally. The page shows one decimal place and thresholds use the original values.
For fixed 100, 200, and 300 ms samples, the median is 200 ms. Auto-repeat does not increase the sample count, and a press without keyup is discarded.
The test captures only the selected KeyboardEvent.code. System shortcuts, browser-reserved keys, and special device keys may not be captured; focus loss discards unfinished keyups; scheduling affects timing.
Each valid sample is the keyup timestamp minus the first non-repeat keydown timestamp for the same key. Auto-repeat does not create another sample.
If the page loses focus, an unfinished press is discarded and completed samples remain. This prevents a later event from being paired incorrectly.
MAD is the median absolute deviation from the sample median. A smaller value usually means this round is more consistent, not that the hardware is better.
All keyboard events and statistics are processed in this browser. Nothing is uploaded, no remote API is called, and no URL or local storage is written.
The tool uses no third-party runtime code or assets; its algorithm and interface are independently implemented.