the dropdown change came from the browser, not from a script
Every change on the gate's <select> trusted. N/A when no change was fired (severity: warn).
What a detector infers
The same isTrusted argument as the click row, on the surface where the shortcut is most common. Choosing an option in a <select> - by pointer, by touch, or with the arrow keys - makes the engine fire the events; the usual automation fallback sets option.selected and dispatches a change Event it constructed, which is synthetic by definition.
Dropdowns are worth a row of their own because they are the one interaction almost every CDP-based wrapper takes a shortcut on - the native dropdown popup is an OS-level surface the protocol cannot drive directly, so wrappers reach past it rather than through it. Measured on Chrome 150 against SeleniumBase: on 4.51.3 every select helper produced isTrusted false, a plain Event with composed false, and no input event before it.
Re-measured on 4.51.5, select_option_by_text now types the option's text into the focused control with real key events and passes this row - but select_option_by_value and select_option_by_index were left on the old path and still fail it, verified at untrustedChanges 1 with the audit scoring 99. So the fix landed on one of three helpers, which is a good illustration of why this row scores what the engine reports rather than which library is in use.
How to resolve it
Change a <select> through the input pipeline: focus it and send real key events (arrow keys, then Enter), or click the option natively. Assigning .selected and dispatching a constructed Event is the fallback most wrappers use and it is synthetic by construction.
Nearby checks in Automation surface
- user activation only ever appeared after a real input event
activation-without-inputThe row above this one reads navigator.userActivation once and expects it to be true, because the audit is reached by pressing a button. - the clicks this page received were real clicks
interaction-click-trustEvent.isTrusted is set by the engine when it dispatches an event it generated itself, and it cannot be set from script - a constructed… - every keypress had a keydown behind it
interaction-keypress-without-keydownThe UI Events spec generates keypress as the DEFAULT ACTION of a keydown - it is not an independent event, it is what a keydown does when it… - key events named the key they carried
interaction-key-identity-populatedA keypress the engine generates names the character it is delivering in .key. - the dropdown fired input before change
interaction-select-input-precedes-changeHTML's "send select update notifications" steps fire input and THEN change when a selection is committed, so the pair is what the algorithm… - the text in the field arrived through events
interaction-value-without-eventsText cannot appear in a field without the engine having put it there, and every route the engine offers announces itself with an input event… - the pointer moved before it clicked
pointer-movement-precedes-clickA mouse reaches a target by crossing the document, and every position it crosses is an event. - arriving over a control and pressing it were separate moments
pointer-arrival-to-press-intervalpointerover fires when the pointer arrives over an element; pointerdown fires when the button goes down.
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-select-change-trust belongs to.
