Keyboard Tester: Key Events, Rollover & Chatter Evidence
Test browser-visible keyboard keys, held chords and rapid-repeat candidates locally. Separate auto-repeat and export a clear JSON or CSV support report.
Keyboard Evidence Lab
No keys are recorded until you press Start in the lab. Use a physical keyboard and a foreground browser window; mobile or accessibility input can behave differently.
Supported scope: 5 minutes / 5,000 key events per session · recognized KeyboardEvent.code positions · local JSON baseline ≤1.5 MB · no hardware polling-rate, switch latency, Fn or complete NKRO certification.
Your inputs
Required fields are marked with an asterisk.
Your result
Review your output, then save it to your device.
Make the next step clear.
Your findings, assumptions and next steps will appear here after you run the check.
Keyboard Evidence Lab · https://keyboard.kitforma.com/ · KitForma
Real downloadable output
Files stay in your browser
Clear format and size limits
Understand the evidence.
Focused guides explain the rules, the edge cases and the checks worth doing before you act.
Test keyboard input without confusing auto-repeat and chatter
Use a controlled single-press protocol and interpret the event sequence.
Read the guide ↗Field guide / 02Check keyboard chords and understand rollover limits
Observe the combinations you use without treating one peak count as certification.
Read the guide ↗Field guide / 03Prepare a readable keyboard support report
Export only the focused test and explain the measurement conditions.
Read the guide ↗Before you start
Does a rapid-repeat candidate prove keyboard chatter?
No. The report marks a non-repeat down event that follows the same key’s release within your chosen interval. Fast deliberate presses can also qualify. Review the timestamps and repeat a slow single-press protocol; the browser cannot isolate the electrical switch from firmware, OS or input software.
Why are held-key repeats counted separately?
Holding a key normally produces auto-repeat keydown events. The lab records the browser repeat flag without treating each repeat as a fresh physical press or a new held key. An unexpected down without a prior release is shown separately for review.
Does the peak chord certify N-key rollover?
No. It is the largest set of simultaneously held codes observed during this particular test. Different combinations can behave differently, and reserved shortcuts may be intercepted. Test the combinations you actually use and keep their event evidence.
Why do labels not match my keyboard language?
The lab displays KeyboardEvent.code positions such as KeyQ, not the character printed or typed. It includes ANSI, ISO and JIS extra positions in one board. A code can correspond to a different letter on another layout, and unused positions are not missing-key faults.
Are passwords or other typing captured?
No global typing listener runs. Capture starts only after Start and accepts events in the focused test area; leaving it stops the session. Typed characters are not stored. Still, use only deliberate test presses and do not type sensitive text into the test area.
Can I compare or keep a report?
Yes. Download JSON or CSV, choose the current stopped session as a baseline, or load a prior version 1 report. Matching threshold and source type are required for direct comparison. The lab does not automatically save anything; Clear removes both the current session and baseline.
Sources & assumptions
Formats, algorithms and supported features are documented below. Check the stated scope and inspect your output before using it.
- MDN: KeyboardEvent.code ↗
Physical-position codes differ from typed characters and may be synthesized by nonphysical input.
- MDN: KeyboardEvent.repeat ↗
Auto-repeat is a distinct event property.
- W3C UI Events ↗
Keyboard event semantics and browser/operating-system handling.
Reviewed 2026-10-19. Read our methodology or report an issue.