Skip to content
All fingerprint checks
Capability surfaces

The system colour palette belongs to the claimed OS

Pim· Clearcote Research 2 min readCheck id system-colors-vs-os

Under a Windows claim a <select> is drawn on Field and the range input does not take the Linux colour; under a Linux claim the <select> is drawn on ButtonFace or the range input is coloured rgb(157, 150, 142). N/A under forced-colors, for macOS and mobile claims, and on non-Chromium engines (severity: warn).

What a detector infers

Windows and Linux Chrome resolve the CSS system colours and their built-in form-control styles differently, and some of the differences are structural rather than a matter of colour taste. A <select>'s computed background is the Field colour on Windows and the ButtonFace colour on Linux, and a range input's computed colour is rgb(157, 150, 142) only on Linux; neither follows the accent colour.

Measured with default themes in the light scheme — Chrome and Edge on Windows: Highlight rgb(0, 120, 215), GrayText 109, ButtonFace 240 and the select on Field; genuine Linux Chrome: Highlight rgba(0, 65, 198, 0.8), GrayText 128, ButtonFace 239, the select on ButtonFace and the range colour above. Linux Chrome claiming Windows kept the entire Linux palette. Only the structural arms are scored.

Highlight is not used, because it follows the user's accent colour, and the row declines under forced-colors (high contrast), where the palette is replaced. That is the line between this row and system-colors-vs-platform, which asserts only that each foreground and background pair is legible and names no OS: that row's caution about colour values still stands, which is why this one names the OS from form-control structure and not from a palette a user can change. It is asserted for the Windows and Linux claims it was measured on.

How to resolve it

These values come from the platform's theme and built-in stylesheet beneath the page. Present the OS the browser actually runs on; overriding getComputedStyle for a few keywords leaves the form controls styled by the real platform's rules.

Anatomy of a browser fingerprint: every signal, and why they must agree

Nearby checks in Capability surfaces

See all 24 checks in Capability surfaces
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 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 system-colors-vs-os belongs to.