Steady repeat-event gaps
After a valid hold, show each steady gap in time order and mark gaps strictly above the effective threshold.
Hold a target key and analyze steady-state browser auto-repeat intervals to find suspected long gaps and judge whether the sample is sufficient.
Test settings and live samples
For example KeyW, Space, or ShiftLeft. Tab is not supported.
Enter a valid KeyboardEvent.code such as KeyW, Space, or ShiftLeft. Tab is not supported.
Use 20–1000 ms; the default is 150 ms. The effective threshold cannot be below the steady median plus four MAD.
Enter a finite value from 20 to 1000.
Current phaseNot started
The result describes continuity of repeat events received by the browser and cannot prove a hardware fault by itself.
After a valid hold, show each steady gap in time order and mark gaps strictly above the effective threshold.
Steady gapᵢ = repeatTimeᵢ − repeatTimeᵢ₋₁. Effective threshold T = max(user threshold, median + 4×MAD). Mark gapᵢ when it is greater than T; exclude the initial non-repeat-to-first-repeat delay.
Gaps, thresholds, and classifications use unrounded milliseconds internally. The page usually displays one decimal, and equality with the threshold is not suspected.
Independent checks cover stable 33 ms gaps, 150 ms threshold, 234 ms outlier, out-of-order and duplicate timestamps, NaN/Infinity, insufficient data, adaptive threshold, 20 recommended gaps, and a 2,000-event cap.
Auto-repeat must be enabled. A normal key release only ends the round. Focus loss, tab changes, background throttling, hardware event differences, Bluetooth, and system repeat settings affect the samples.
Start a new round and hold the target key in the capture area. The first repeat delay is ignored; at least five steady gaps are needed, and 20 or more are recommended.
The method needs repeat=true events to form a sequence. If auto-repeat is off, the delay is very long, or the browser receives no repeat events, there are not enough gaps to analyze.
An adjacent repeat-event gap is strictly above the effective threshold. It shows an unusually long browser-event gap and is a troubleshooting clue, not proof of hardware dropout.
All key events and statistics are processed locally in this browser. Nothing is uploaded, no remote API is called, and no URL or local storage is used.
No third-party runtime code or assets are reused. The algorithm and interface are independently implemented; external links explain browser standards only.