Reaction Time Test
Test visual reaction time in milliseconds over five valid attempts. See average, median, best/worst, false starts, and local history; browser and device delay is included.
- Browser-observed
- No device permission
- Optional history in this browser
- No account or upload
Important
- Results include user, input device, browser, and display pipeline latency — not pure hardware delay.
Loading…
Results
- Last
- —
- Average
- —
- Median
- —
- Best
- —
- Worst
- —
- False starts
- 0
- Local best avg
- —
- Progress
- 0/5
- Response input
- —
Result distribution
No samples yet.
Local history
No local history yet.
How to use
- Click or tap the large test panel, or use Start, to begin.
- Wait for the panel to turn green. An early response counts as a false start and does not count as a valid sample.
- Click or tap the panel, press Space, or press Enter while the panel is focused as soon as it turns green.
- Complete five valid attempts, then review average, median, best, worst, false starts, response input, and local history.
What the result means
- Each valid sample is the elapsed browser-observed interval from the timestamp used to trigger the green cue to the pointerdown or keyboard response received by the page.
- Lower times are faster. Average is the mean of five valid samples; Median is the middle valid sample and is less affected by one unusually slow attempt.
- Best and Worst show the spread of the session. Treat the Best attempt as one sample, not as your overall reaction time.
- Response input records the browser-reported method for each valid attempt. A Mixed session remains valid, but it is less useful for direct comparison with a single-method session.
- The result still includes the browser/rendering/display path before you perceive the cue, your response, the input device, and browser event delivery.
- For meaningful comparisons, repeat five-attempt sessions using the same display, browser, response method, similar system load, and the same wired or wireless input setup where relevant.
- Local best average and session history are stored only in this browser.
Limitations
- The timer starts when the page triggers the green cue inside a browser animation frame; DeviceMetrik does not use a physical sensor to detect the exact instant a display pixel changes.
- Results include human response plus display, browser, operating-system/input-path, and input-device delay. This is not pure mouse latency, keyboard latency, display latency, or a laboratory measurement.
- Refresh rate, mouse vs touch vs keyboard input, browser scheduling, device load, power-saving behavior, and related system conditions can shift the measured result.
- Backgrounding or losing focus aborts a running attempt rather than recording it as a valid reaction.
Troubleshooting
- Clicks do nothing after Start
- Click or tap the large reaction panel, or use Start below it. Wait for the green signal; an early response is a false start.
- Test stops unexpectedly
- Leaving the tab or unfocusing the window aborts a running trial for accuracy.
- My results vary a lot between sessions
- Use the same display, browser, response method, and wired or wireless input setup; keep the page focused; avoid heavy background workload; compare repeated five-attempt sessions; inspect the median as well as the average.
Related tools
FAQ
Is this my true hardware latency?
No. It is a browser-observed end-to-end reaction result that includes you plus the display, browser/system path, and input device.
What is a typical visual reaction time?
There is no universal browser cutoff. Woods et al. (2015) measured a mean simple visual reaction time of 231 ms in 1,469 adults aged 18–65 using a calibrated research setup; the study reported 213 ms after correcting its hardware delay. That protocol is not directly interchangeable with this browser test because display, browser, device, and input-path delay differ. Use it as reference context, not as a DeviceMetrik score grade. Read the Frontiers full text.
How does DeviceMetrik time each attempt?
The test schedules a random wait, triggers the visual signal inside requestAnimationFrame, records the start with performance.now(), and records the response with performance.now() when the page handles pointerdown or a supported key event. The measured number therefore still includes rendering, display, and input event-path effects; it is not the exact physical pixel-onset interval.
Why five attempts?
Five valid attempts keep the test short while reducing reliance on one lucky or distracted response. Use repeated sessions when you want a more stable personal baseline.