Human performance · Reaction
Reaction Time Test
This reaction time test measures how quickly you respond to a visual signal, in milliseconds. It runs entirely in your browser: press start, wait for the signal to appear after a random delay, then respond as fast as you can.
A session takes well under a minute and consists of five valid attempts. At the end you get your average, your fastest attempt of the session, and a personal best stored on this browser.
- 5 valid attempts
- Under a minute
- No permissions required
Session in progress
Valid attempts: 0 of 5- Latest
- —
- Session average
- —
- Session best
- —
- Personal best
- —
Saved in this browser after your first valid attempt
False starts and cancelled attempts are excluded from every metric.
Your result
What your result means
Your reaction time is reported in milliseconds: Testpartout measures browser-observed response time, from its frame-aligned start reference — the moment the test commits the signal state for the next frame — to the moment your input event arrives. Lower is faster.
A single attempt says very little. Attention drifts, you blink, you anticipate — that is why Testpartout asks for five valid attempts and reports the average as the headline number. The session best shows the peak you reached, not what you can repeat.
- The average of your five valid attempts is the most useful figure. Treat the best attempt as your ceiling, not your typical performance.
- Comparisons are only meaningful against yourself, on the same device, browser and input method. Switching from a wired mouse to a touchscreen changes the number even if your reflexes are identical.
- The measurement includes your response plus display latency, input-device latency, browser scheduling and whatever else your system is doing. A busy machine reads slower.
- Testpartout does not show a percentile or a global average, because no real aggregated data exists yet. When it does, it will be based on measured results — never on estimates.
Procedure
How the test works
- 01
Start an attempt
Tap or click the test area, or press Space or Enter while it is focused. The area switches to its waiting state.
- 02
Wait for the random delay
Each attempt waits between 1.5 and 4.5 seconds. The interval is regenerated every time, so the signal cannot be anticipated or rhythm-timed.
- 03
React to the signal
The area changes and reads TAP NOW. Respond with a tap, a click or the Space key — whichever you prefer, as long as you keep it consistent.
- 04
Read the attempt
The elapsed time is shown immediately in milliseconds, along with which attempt you are on. You start the next attempt yourself.
- 05
Repeat five times
The session needs five valid attempts. False starts and attempts cancelled by leaving the tab do not count and are simply repeated.
- 06
Get your session result
Testpartout reports the average of the five valid attempts, the fastest of them, and your personal best on this browser.
Methodology
How Testpartout measures this
The method below is exactly what the code on this page does — nothing is described that is not implemented.
What the implementation does
- A session is five valid attempts. Nothing is reported until at least one valid attempt exists.
- Each attempt uses a freshly randomised waiting interval between 1500 ms and 4500 ms.
- Timing uses the high-resolution monotonic clock, performance.now(), not the wall clock, so clock adjustments cannot distort a measurement.
- When the waiting interval elapses, a single animation frame is scheduled. Inside that same frame the signal state is committed to the DOM synchronously and the start timestamp is read immediately afterwards, so the visual transition and the start of timing are frame-aligned rather than tied to the moment the delay timer fired.
- On input, the timestamp is captured before any state update, storage write or re-render. Pointer input (mouse, touch, pen) is measured on pointerdown and keyboard input on keydown for Space or Enter with key repeats ignored — never on click, pointerup or keyup.
- A response arriving before the signal is a false start: no value is recorded, the attempt counter does not advance, and you repeat that attempt.
- If the tab becomes hidden or the window loses focus during an attempt, that attempt is cancelled rather than recorded, because frame timing outside the foreground is not trustworthy. You then start the next attempt yourself; an interrupted attempt is never silently resumed.
- The reported average is the arithmetic mean of the valid attempts; the session best is their minimum. Values are stored at full precision and displayed as whole milliseconds.
- Your personal best is kept in this browser's local storage only, and only when a valid attempt is faster than the stored value.
Limits of a browser measurement
- This is browser-observed response time. Timing is frame-aligned browser timing using performance.now(); the absolute number also contains display latency, input-device latency, browser scheduling and system load, and Testpartout cannot isolate those from your own response.
- Display refresh rate quantises the signal: on a 60 Hz screen the signal can only appear on a ~16.7 ms boundary, which adds variance no software can remove.
- Wireless and Bluetooth peripherals typically add latency compared with wired ones, and it is not constant.
- Power-saving modes, background tabs, downloads and heavy pages all shift results, usually upwards.
- This is a browser-based reaction measurement, not a laboratory or clinical instrument. It is useful for comparing your own sessions under similar conditions.
Privacy
What happens to your data
This section describes the behaviour of the code on this page, not an intention.
- The measurement happens entirely in your browser. No result is sent to a server in this version of the test.
- The five attempts of a session live in page memory and disappear when you leave or reload the page.
- Only your personal best is stored locally, in this browser: the best time in whole milliseconds, the input method used, and the moment it was achieved.
- No account, no sign-in and no email are required or offered here.
- The test requests no microphone, camera, location or device permission of any kind.
- No identifier, fingerprint or hardware profile is created or stored. Clearing your browser storage removes the personal best and nothing else.
Troubleshooting
If the test does not behave as expected
The test does not respond
Click or tap directly inside the test area first — for keyboard use it must be focused, which you can do with Tab. Space and Enter work only while it is focused. If the page has become unresponsive after a long session, reload it; nothing but the personal best is lost.
Space scrolls the page instead
That happens when the test area is not focused, so the key reaches the page instead. Tab to the area (or click it once) and the Space key is captured by the test.
Results look unusually slow
Close heavy tabs and downloads, leave power-saving or battery-saver mode, and prefer a wired mouse or keyboard over a Bluetooth one. A single slow attempt is normal; five consistently slow ones usually point at system load or peripheral latency.
Results vary a lot between attempts
Some variation is inherent: human reaction time fluctuates from attempt to attempt, and display refresh and browser scheduling add their own spread. That is precisely why the headline metric is the average of five attempts.
I keep getting “Too soon”
You responded before the signal appeared. Because the delay is re-randomised every attempt, guessing the rhythm does not work. Wait until the area actually changes and reads TAP NOW.
My attempt was cancelled
Switching tab or window during an active attempt cancels it, so a distorted time is never recorded. Nothing is counted against you — keep this tab in the foreground and repeat the attempt.
Factors
Common factors that affect reaction-time results
These do not indicate a fault. They are the reasons two honest measurements of the same person can differ.
Display refresh and latency
A higher refresh rate shows the signal sooner and more precisely. Panel processing, overdrive and TV picture modes can add several milliseconds on top.
Input method
Mouse, touchscreen, stylus and keyboard have different debounce and polling behaviour. Keep the same one within a session and between sessions you want to compare.
Wireless peripherals
Bluetooth mice and keyboards usually add latency compared with wired or low-latency wireless receivers, and it varies with interference and battery level.
System and browser load
Background CPU work, many open tabs, video calls and updates delay the frame the signal is drawn in and the delivery of your input event.
Attention and fatigue
Fatigue, attention, input devices, display latency and browser or device conditions can all affect the result, and a browser cannot separate their contributions.
Changing device between sessions
A laptop trackpad, a phone screen and a desktop with a gaming mouse are three different measurement setups. Compare like with like.
FAQ
Frequently asked questions
- What does a reaction time test measure?
- It measures browser-observed response time in milliseconds: from the point where the test commits the visual signal for the next frame to the moment your input event arrives. That interval includes your own response plus display latency, input-device latency and browser scheduling, so it describes a whole chain rather than isolating your nervous system.
- Why does my reaction time change between attempts?
- Human reaction time naturally fluctuates with attention, fatigue and anticipation, and the browser adds its own variance through frame timing and scheduling. This is why Testpartout asks for five valid attempts and reports the average rather than judging a single try.
- Does monitor refresh rate affect the result?
- Yes. The signal can only become visible when a frame is drawn, so a 60 Hz display quantises it to roughly 16.7 ms steps, while a 144 Hz display quantises to about 7 ms. Higher refresh rates therefore tend to produce slightly lower and more consistent numbers.
- Is a mouse faster than touch or keyboard?
- They behave differently rather than one being universally faster: polling rates, debounce handling and how you hold the device all contribute. Testpartout records which input method your personal best was achieved with, so you can compare sessions that actually used the same setup.
- Why did I get “Too soon”?
- You responded during the waiting interval, before the signal appeared. That attempt is discarded rather than recorded as an impossibly fast time, it does not count towards the five valid attempts, and it cannot affect your average, session best or personal best.
- Does Testpartout upload my reaction time?
- No. The whole measurement runs in your browser and no result leaves the page. The attempts of a session exist only in memory, and just your personal best is saved in this browser's local storage.
- Why don't I see a percentile or a global ranking?
- Because we do not have real aggregated data yet, and we will not invent it. Showing a made-up distribution or a plausible-looking “faster than X%” badge would be worthless. Percentiles will appear only once they are computed from genuine measured results.