no automation pointer-flash artifact is present
No @keyframes rule named show-pointer-ani in any readable stylesheet. N/A when no same-origin sheet can be read (severity: warn).
What a detector infers
The only row on this page that works by recognising a specific string, which needs justifying because a name table is exactly what this audit refuses to build. The justification is that this is not a fingerprint of a browser, it is the leftover of a tool.
The nodriver / SeleniumBase family ships a debug helper that paints a coloured dot over an element before clicking it, and it implements the animation by inserting a @keyframes rule named show-pointer-ani into the document's own first stylesheet.
Measured on Chrome 150 against SeleniumBase 4.51.3: the injected div is removed when the animation ends - a MutationObserver catches both the insertion and the removal - but the keyframes rule is never cleaned up, so it is still in document.styleSheets long after the flash is invisible.
No browser defines that name and no site has a reason to, so it can be asserted by name without the rot a browser-behaviour table would suffer; if the helper is ever renamed the row simply stops firing, which is the correct failure mode.
Note the honest limit stated in the passing detail: the automatic flash-on-click was commented out upstream with the note that it may be getting detected, so the helper is now opt-in and this row passing means the artifact is absent, never that no driver is present.
How to resolve it
Stop calling the flash helper. It is a debugging aid with no effect on what the page does, and it writes a uniquely named rule into the document that outlives the animation it was created for. Nothing to fix for an ordinary visitor - no browser and no site defines this name.
Nearby checks in Automation surface
- clicks landed on different points, not the same one repeatedly
pointer-landing-dispersionAiming is imprecise. A hand lands somewhere inside a control and the spread shows up within two or three clicks; a driver resolves the… - the button stayed pressed for the whole hold
hold-button-state-coherentThe gate's press-and-hold step asks for a button to be held for over a second, which is two orders of magnitude longer than a click's dwell… - the pointer travelled to each control it pressed
pointer-approach-per-targetThe gate asks for four separate acts in four separate places - three markers, a text field, a slider and a dropdown - and a pointer has to… - the pointer accelerated and slowed on its way to each control
pointer-approach-speed-profileA pointer moved by an arm leaves rest, accelerates, and brakes into its target, so the distance covered between consecutive samples rises… - pageXOffset/pageYOffset match their scrollX/scrollY aliases
scroll-alias-coherencewindow.pageXOffset is not a second scroll position, it is a legacy alias of window.scrollX — the specification defines them as the same… - a focused child frame implies its parent document is focused
document-focus-vs-realmdocument.hasFocus() is true when the document OR any of its descendants holds focus, which makes it hierarchical rather than local: a… - no non-standard shadow-root escape hatch exists on Element.prototype
shadow-escape-hatch-absentClosed shadow roots exist to be unreachable: element.shadowRoot returns null for them, and that is the whole contract. - the markup this page was served with is the markup that reached the DOM
served-markup-integrityEvery other check on this page asks the browser about itself.
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 pointer-flash-keyframe-artifact belongs to.
