Skip to content

Human performance · Accuracy

Aim / Accuracy Test

This aim test measures pointing accuracy over thirty trials. One circular target appears at a time, and you get exactly one scoring press per target: inside the circle is a hit, anywhere else in the stage is a miss, and then the next target appears.

Because a trial can never be retried, the result is an honest accuracy figure rather than a record of how many times you clicked around a target until something landed. Average hit time is reported separately, so precision and speed stay readable instead of being merged into one invented score.

  • 30 trials
  • Accuracy first
  • Mouse, touch or pen

Not started · 30 trials

30 trialsOne target appears at a time. Hit it with a single press — each press resolves that trial, whether you hit or miss.

The measurement itself requires a mouse, touchscreen or pen: only a primary pointer press inside the stage is measured, and keyboard keys deliberately produce no hit or miss. Every target gives you exactly one scoring press — a press outside the circle is a miss and the next target follows. Right-click, middle-click and secondary contacts are ignored. All buttons and controls on this page stay keyboard operable.

Session in progress

Not started · 30 trials
Accuracy

0 of 30 trials resolved

Hits
0
Misses
0
Average hit time

Hits only — a miss has no time to target

Input method

Set by your first pointer press

Personal best

Saved in this browser after your first completed session

Only your best result — hits, accuracy, average hit time and the pointer type — is stored in this browser. No target positions, pointer coordinates or per-trial timings are kept or uploaded.

Your result

What your result means

Accuracy is your hits divided by the trials you have resolved, expressed as a percentage. With a fixed thirty trials, the figure is dominated by how reliably you can place a single press on a target rather than by how fast you can repeat presses.

Average hit time is the mean duration of your successful trials only, measured from the moment the target became visible to the moment your press was registered. It includes the time to see the target, move the pointer and press, so it is not a pure reaction time and not a pure movement time.

The two numbers trade off against each other: moving faster can reduce hit time and can also reduce accuracy. There is no combined score here, so you can see which side of that tradeoff a session sits on.

  • One press per target means a miss stays a miss. That is the point of the design: repeated presses around a target would inflate accuracy without measuring anything.
  • A miss contributes no time, because the target was never reached. Only hit durations enter the average.
  • Results from a mouse, a touchscreen and a pen are not directly comparable, so the input method is recorded with the result.
  • Testpartout shows no percentile, global average or skill label, because no real aggregated data exists yet. When it does, it will come from measured results.

Procedure

How the test works

  1. 01

    Press Start test

    Nothing is measured before you start. The Start press is not a trial, and no timing reference exists until the first target is actually on screen.

  2. 02

    A single target appears

    One circular target is drawn fully inside the stage. It does not move, shrink or animate, and its size does not change between trials.

  3. 03

    Make one press

    Press on the target with a mouse, a touchscreen or a pen. That press resolves the trial: inside the circle is a hit, anywhere else inside the stage is a miss.

  4. 04

    Short blank gap

    After the trial resolves, the stage blanks briefly. Presses in that gap are ignored, so a double-click or a bouncing touch cannot resolve the next trial for you.

  5. 05

    Repeat for thirty trials

    Each new target is placed at a new random position, kept a minimum distance from the previous one so consecutive targets never land effectively on the same spot.

  6. 06

    Read your result

    Accuracy is shown first, with hits, misses, average hit time and the input method beside it, plus your best result 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 exactly 30 trials. It is never extended and never shortened.
  • Each trial contains one visible circular target, and exactly one measured pointer response resolves that trial.
  • The first valid response decides the outcome: inside the target is a hit, elsewhere in the stage is a miss. There is no retry inside a trial.
  • Only a primary pointer press is measured: the left mouse button, a single touch contact or a pen tip. Non-primary buttons, secondary contacts and unknown pointer types are ignored.
  • Only pointer presses are measured. Space, Enter and any other key produce no hit and no miss, because keyboard activation is not pointer aiming. Every control on the page stays keyboard operable.
  • The pointer type of your first measured press — mouse, touch or pen — becomes the input method of the session. A press from a different pointer type is then ignored, so two kinds of hardware are never mixed into one result.
  • The target is a circle. Hit testing is geometric, using the real rendered stage and target geometry: distance from the target centre less than or equal to the radius is a hit.
  • Target size rule: the diameter is 11% of the measured stage width, clamped to a minimum of 44 and a maximum of 72 CSS pixels, so it stays tappable on small screens and non-trivial on wide ones. The size never changes during a session.
  • The stage keeps a fixed 4:3 aspect ratio at every width, so relative difficulty stays comparable across screen sizes.
  • Target centres are generated in normalized stage coordinates and are always fully inside the stage. Generation uses crypto.getRandomValues where available, with a documented non-security Math.random fallback.
  • Consecutive targets must be at least a quarter of the stage width apart, measured centre to centre with the vertical axis aspect-corrected, so two targets in a row never appear effectively in the same place.
  • Timing uses the browser's monotonic clock (performance.now()). A target's start reference is established immediately after its appearance is committed inside a single animation frame, and a response timestamp is read before any other work.
  • Accuracy = hits / resolved trials × 100. On a completed session the divisor is the full 30 trials.
  • Average hit time = the sum of hit durations divided by the number of hits. Missed trials are excluded entirely; with zero hits the value is shown as unavailable rather than invented.
  • Personal best comparator: more hits wins first, and on equal hits a lower average hit time wins. Because every session has 30 trials, comparing hits is the same as comparing accuracy.
  • After a trial resolves, a short blank inter-trial gap applies. Presses during that gap cannot score, and the resolved target can never score again.
  • If the page becomes hidden the whole session is cancelled: no result, no personal-best write and every pending timer and animation frame is discarded. An explicit restart is required.
  • Persistence is local only: one personal-best record in this browser. No target coordinates, pointer coordinates, per-trial timings or session history are stored.

Limits of a browser measurement

  • This is browser-observed timing, not photon-level display timing. Display latency, input-device polling and event delivery are all part of the reported hit time.
  • Average hit time includes seeing the target, moving the pointer and pressing, so it cannot be read as a pure reaction time.
  • CSS pixels are not physical millimetres. The target-size rule equalises relative difficulty across widths; it does not claim identical physical target size across devices.
  • Pointer hardware, sensitivity settings, pointer acceleration and surface can all influence the result on the same hand.
  • Automated or scripted pointer events can produce results that no physical device would. A local result that was not produced by hand is meaningless, but it is your own browser storage.

Privacy

What happens to your data

This section describes the behaviour of the code on this page, not an intention.

  • The test runs entirely in this page. No target positions, pointer coordinates or timing logs are sent anywhere.
  • No account, sign-in or permission is required to run the test.
  • Only your best result is written to this browser's local storage: hits, accuracy, average hit time, the input method and a timestamp.
  • Individual trials are kept in memory during the session and are discarded when you leave or restart. No trial history is persisted.
  • Clearing your browser storage removes the personal best. There is no copy of it anywhere else.
  • Results are not uploaded, aggregated or ranked. If Testpartout ever offers aggregated comparisons, it will be explicit and based on real measured data.

Troubleshooting

If the test does not behave as expected

My press did not register

Only a primary pointer press inside the stage is measured. Right and middle mouse buttons, secondary touch contacts and keyboard keys are ignored on purpose, and after your first press only that same pointer type keeps counting.

I pressed twice and only one trial advanced

That is intended. A resolved trial is followed by a short blank gap in which nothing can score, so a bounced click or a double tap cannot resolve two trials.

The session was cancelled

Switching tabs or minimising the window hides the page, and a hidden page cannot be timed honestly. The session is discarded and your personal best is untouched.

The page scrolls when I tap on mobile

Aiming inside the stage does not scroll the page, because touch gestures are suppressed for that area only. Tapping outside the stage behaves normally, so you can still scroll the rest of the page.

My accuracy is far lower than usual

Check the pointer device first: a different mouse, a new sensitivity setting or a trackpad instead of a mouse can all change how a press lands. The input method is shown with your result for that reason.

The result did not save

Only a completed session that beats your stored best is saved. Private browsing and storage-blocking settings can also prevent writing to local storage.

Factors

Factors that can affect an aim result

Accuracy and hit time are measurements of your hand, your pointer hardware and your browser together. These factors can move the numbers without your ability changing.

Pointer device

A mouse, a trackpad, a touchscreen and a pen place a press through different mechanisms. Results from different input methods are not directly comparable, which is why the method is recorded.

Sensitivity and acceleration

Pointer speed and acceleration settings change how far the cursor travels for the same hand movement, and can influence both accuracy and hit time.

Rendered target size

The target scales with the stage and is clamped to a pixel range, so a small phone and a wide desktop do not present an identical physical target. This can make results differ between devices.

Display and event latency

Display refresh, frame pacing and how the browser delivers pointer events add latency that is included in hit time and can vary between machines.

Device load

A busy machine delivers frames and input events less smoothly, which can increase variability between sessions.

Posture and technique

Hand position, grip, wrist versus arm movement and how far you are sitting from the screen can all influence where a press lands.

Speed and precision tradeoff

Deliberately pressing faster can reduce hit time and may reduce accuracy. Reading the two numbers together is more informative than either alone.

FAQ

Frequently asked questions

How is aim accuracy calculated?
Accuracy is your hits divided by the trials you have resolved, expressed as a percentage. A completed session always has thirty resolved trials, so the divisor is thirty.
Does the Start button press count as a trial?
No. Starting the test only prepares the first target. Nothing is measured until a target is actually visible, and the Start press can never become a hit or a miss.
What counts as a miss?
Any measured press inside the stage that lands outside the target circle. Hit testing is geometric: a press whose distance from the target centre is less than or equal to the radius is a hit, and anything further out is a miss.
Why do I only get one press per target?
Because repeated presses around a target would measure persistence, not aim. One scoring press per trial keeps accuracy meaningful, and a short blank gap after each trial stops a bounced or double press from resolving the next one.
Can I use a touchscreen or a pen?
Yes. Mouse, touch and pen are all supported. The pointer type of your first measured press is fixed for that session, so a later press from a different pointer type is ignored and two kinds of hardware never mix into one result.
Does my mouse or its settings affect the result?
It can. Sensor quality, sensitivity, pointer acceleration, the surface and the button itself can all influence where a press lands and how long it takes. Compare sessions on the same device and input method.
How is average hit time calculated?
It is the mean duration of successful trials only, measured from the target becoming visible to your press being registered, using the browser's monotonic clock. Missed trials are excluded, and with zero hits the value is shown as unavailable rather than invented.
Does Testpartout store my targets or clicks?
No. Target positions, pointer coordinates and per-trial timings exist only in the page while you play. Only your best result — hits, accuracy, average hit time, input method and a timestamp — is stored in this browser.
Why is there no percentile or rank?
Because no real aggregated data exists yet, and an invented benchmark would be worse than none. There is also no combined aim score: accuracy and hit time are reported separately so the tradeoff between them stays visible.