screen dimensions are a plausible physical size
Check id screen-plausible
What an ordinary browser yields
screen.width and screen.height each land between 200 and 16384 px — or N/A when a tiny screen cannot contain the live window (virtual / placeholder display: RDP, kiosk, driver-less VM).
What a detector infers
A pure sanity range on screen.width and screen.height: both must be at least 200px and no more than 16384px. This is not a coherence cross-check but a plausibility floor and ceiling. Its practical value is at the low end — a screen of 0×0 or a handful of pixels is what an environment with no attached display reports, so the value itself describes the environment rather than a display. The upper bound catches values beyond any shipping panel or reasonable multi-monitor virtual desktop. One honest exception is carved out: a tiny screen that the live window does not even fit into is a virtual / placeholder display — an RDP or VNC session, a kiosk, an embedded or driver-less VM. That is a genuine environment, not a spoof, so the check declines (N/A) instead of scoring it; the corpus showed 16% of genuine Windows browsers tripping the bare floor. A tiny screen the window DOES fit into still fails — that is the headless tell. Severity is warn: it flags an implausible value, not a proven contradiction between two signals.
How to resolve it
Ensure the browser has a real render surface. In a headless or containerized environment, attach a virtual display of a normal desktop resolution so screen.* reports genuine geometry instead of zeros or placeholder values.
Read in the wild by
Kasada
Reads raw screen.width and screen.height in both realms — the page window and a nested iframe — each landing in its own dedicated slot of the fingerprint payload.
window_screen_width, window_screen_height, iframe_screen_width, iframe_screen_height — each a dedicated payload slot (blog.txt batch 4 slot 24: iframe_screen_width(fn_44691); batch 8 slot 235: window_screen_height(fn_16394); batch 17 slot 32: window_screen_width(fn_179835); batch 5 slot 302: iframe_screen_height(fn_232879)). Realm prefixes decode via the script's own name map: batch_context.exg = window_ref, batch_context.ukz = iframe_ref.
Every attribution traces to a published artifact. See the sources and their limits.
Nearby checks in Screen & display
- screen.width/height backed by the display (matchMedia)
screen-matchmediaThis check reads window.screen.width/height, then asks the CSS media-query engine the same question via matchMedia("(device-width: Npx) and… - devicePixelRatio matches matchMedia resolution
dpr-matchmediaThe check compares window.devicePixelRatio against the layout engine's own answer, querying matchMedia with a min-resolution/max-resolution… - the available screen area fits inside the screen
screen-avail-within-boundsThe available screen area is a subset of the screen by definition: availWidth and availHeight describe what is left of width and height… - screen.colorDepth decomposes into the CSS color media feature
color-depth-vs-media-colorscreen.colorDepth and the CSS color media feature describe one display in two different units: total bits per pixel, and bits per colour… - screen has an OS chrome inset (avail < screen on either axis)
taskbar-presentscreen.availWidth/availHeight describe the area left over after the OS reserves space for its own chrome — a Windows taskbar, a macOS dock… - the outer window fits within the screen
window-boundsThe check asserts only the zoom-invariant bound: window.outerWidth/outerHeight must be non-zero and must fit within the screen. - a non-touch desktop has a fine pointer + hover
pointer-hover-desktopThis check applies only when the UA identifies a desktop platform (Windows, Macintosh, Mac OS X, X11, Linux, CrOS, and not Android/Mobile)… - maxTouchPoints coheres with pointer media
touch-pointer-coherenceA one-directional coherence test: if navigator.maxTouchPoints is greater than zero, matchMedia("(any-pointer: coarse)") is expected to…
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 Screen & display 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 Screen & display — the family screen-plausible belongs to.