Skip to content
All fingerprint checks
Automation surface

the clicks this page received were real clicks

Pim· Clearcote Research 2 min readCheck id interaction-click-trust

Every click on the gate trusted. A keyboard-activated click is trusted too and is reported, not penalised (severity: warn).

What a detector infers

Event.isTrusted is set by the engine when it dispatches an event it generated itself, and it cannot be set from script - a constructed MouseEvent is false, and element.click() produces a synthetic click that is false too. So a click arriving at a listener with isTrusted false did not come through the browser's input pipeline, whatever produced it.

What this deliberately does NOT score is detail, clientX or pointerType: pressing Enter or Space on a focused button produces a trusted click with detail 0, clientX 0 and pointerType empty, byte-identical to element.click() on every field except isTrusted. Scoring the shape rather than the trust flag would fail every keyboard-only visitor, which is both a false positive and an accessibility failure. MEASURED, AND SINCE NARROWED.

On SeleniumBase 4.51.3 this row fired readily: a hardcoded tag whitelist (a, button, canvas, div, input, label, li, path, span, svg) took the native path and every other element got element.click(), as did any element located by its text rather than by CSS, and anything on a google domain.

Re-measured on 4.51.5, that whitelist and both extra conditions have been deleted - click() now attempts the native path for everything and falls back only when it throws, so ordinary clicking no longer trips this. The row is kept rather than retired because the synthetic path still exists and is still reachable: click_active_element(), which routes through evaluate("document.activeElement.click()"), measured at isTrusted false, detail 0, clientX 0 on 4.51.5.

A row that only fires on a narrow path is worth keeping when the invariant behind it is exact; it is the version-specific COMMENTARY that has to be dated, not the invariant.

How to resolve it

Drive clicks through the input pipeline - CDP Input.dispatchMouseEvent with a mousePressed/mouseReleased pair at the element's centre - rather than calling element.click(). If you are using a wrapper, check whether it degrades to element.click() for the element type or the selector style you used; several do so silently, and helpers that click 'the active element' are the usual survivor. Nothing to fix for a person clicking normally, with a pointer or a keyboard.

Nearby checks in Automation surface

See all 50 checks in Automation surface
Who builds this test

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 Automation surface 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 Automation surface — the family interaction-click-trust belongs to.