supported <input> types are identical in a fresh realm
Check id input-surface-vs-realm
What an ordinary browser yields
The same set of types resolve natively in both realms; unsupported ones fall back to "text" identically in both.
What a detector infers
Assigning an unrecognised type to an <input> element does not throw — the element silently falls back to reporting type "text". That turns a one-line probe into a map of which input types the engine actually implements, and the check builds that map for twenty-two types in both the page and a fresh realm. Like the CSS and codec surfaces, this is decided at compile time: an engine that implements <input type=color> implements it in every realm it constructs. The fallback behaviour is the elegant part, because it means the probe reads the engine's real capability rather than any declared list — there is nothing to consult and nothing to lie to, only what the element does when told to be something it cannot be.
How to resolve it
Nothing to fix unless the realms disagree, which would mean element behaviour is being rewritten in the page world while the engine keeps behaving honestly a realm away.
Read in the wild by
Kasada
Probes ~10 <input> types, reading the engine's silent fallback to "text" for a type it does not implement.
input_time, input_tel, input_search, input_range, input_color, input_password, input_checkbox, input_file, input_reset, input_submit
Kasada ips.js teardown — the full 427-probe listEvery attribution traces to a published artifact. See the sources and their limits.
Other checks in Capability surfaces
- the device-API family is present or absent as a unit
device-api-family-coherenceWeb Bluetooth, WebUSB, WebSerial and WebHID are one family on Chromium desktop - the same secure-context gating, the same desktop platforms… - Firefox resistFingerprinting announces itself when enabled
firefox-resist-fingerprinting-identifiableFirefox's privacy.resistFingerprinting substitutes CONSTANTS rather than randomness, and a constant is itself a fingerprint. - the CSS feature surface is identical in a fresh realm
css-surface-vs-realmWhich CSS properties, values and selectors an engine understands is decided when the browser is compiled. - device-level media features are identical in a fresh realm
media-surface-vs-realmMedia features are answered by the layout engine rather than by the JavaScript properties that describe the same machine, which is what… - the codec matrix is identical in a fresh realm
codec-surface-vs-realmcanPlayType answers come from the media stack compiled into the browser, and the shape of that matrix is genuinely informative: branded… - emoji advance widths are identical in a fresh realm
emoji-surface-vs-realmEmoji do not render from the page's fonts but from a platform font supplied by the operating system — Segoe UI Emoji on Windows, Apple Color… - the Web Animations surface is identical in a fresh realm
animation-surface-vs-realmThe Web Animations API exposes a small, precisely specified surface: whether Element.animate exists, whether the timeline and KeyframeEffect… - the platform theme resolves the CSS system colours coherently
system-colors-vs-platformThe CSS system-colour keywords — Highlight, HighlightText, Canvas, CanvasText, ButtonFace, ButtonText, GrayText and their newer siblings…
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 Capability surfaces 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 Capability surfaces — the family input-surface-vs-realm belongs to.