Pointer events arrive on hardware time
Check id pointer-event-cadence
What an ordinary browser yields
Gaps between samples cluster at roughly 4–20ms with real variation, and no meaningful share arrive under 1ms apart.
What a detector infers
Where the linearity check reads the path's shape, this one reads its clock. It measures the gaps between consecutive pointer samples, reading PointerEvent.getCoalescedEvents() where available — the browser batches a high-frequency mouse into a single dispatched event, so the raw dispatch rate would otherwise measure the compositor's frame loop rather than the device. Two distinct signatures follow. A physical mouse or trackpad reports at its own hardware rate, so gaps cluster in the single-digit to low-tens of milliseconds with natural variation. Automation that emits every interpolated step with no delay lands the entire path inside one event-loop turn, collapsing the gaps toward zero. Automation configured with a fixed per-step delay produces the opposite tell: gaps that are near-identical, with a coefficient of variation close to zero. Hardware jitters; a timer does not.
How to resolve it
If input is driven programmatically, ensure each movement is actually dispatched over real time rather than queued into a single turn, and that the interval between steps varies rather than being constant. A fixed delay is as legible as no delay. Unscored, and N/A when too few samples exist to measure.
Other checks in Input & behaviour
- Pointer path curves the way a hand moves
pointer-path-linearityThe check captures the pointer path across the pad and measures two things about its geometry: the RMS perpendicular distance of every… - Pointer velocity and acceleration vary physically
pointer-kinematicsVelocity, acceleration reversals, direction changes, and timestamp quantisation catch constant-speed curved automation missed by linearity. - Movement deltas agree with the coordinates they were derived from
pointer-movement-delta-coherenceEvery pointer event carries two independent accounts of the same displacement. screenX and screenY are where the pointer is; movementX and… - Keystrokes have dwell and flight time
keystroke-timing-distributionThe probe records only two timings per key: dwell, from keydown to keyup, and flight, from one key's release to the next key's press. - Event.isTrusted separates page script from the input pipeline
event-istrusted-provenanceThis row exists to debunk a check rather than to run one, which is why it can never fail.
Clearcote is a browser built for fingerprint coherence
It is a Chromium fork, maintained by the same people who wrote this reference. It ships as a compiled browser rather than as a stealth script injected into someone else's — which is a description of how it is built, and is not an argument about how it behaves on this check.
This audit takes no position on how Clearcote scores on Input & behaviour checks, on this one, or anywhere else. It has no baseline corpus of other people's fingerprints to rank you against and no vendor scoreboard — nearly every check is self-referential, asking one browser the same question through two independent APIs and reporting whether both answers can be true at once. It runs identically on any browser, including ours. Run it on yours and read the result yourself.
See the other checks in Input & behaviour — the family pointer-event-cadence belongs to.