core Windows fonts that measure as installed also load by name
Under a Windows claim, every core Windows face that measures as installed (Arial, Segoe UI, Consolas, Calibri, Cambria, Times New Roman, Courier New, Tahoma, Verdana, Georgia) also loads through local().
What a detector infers
A page can ask whether a font is installed in two ways. It can measure: draw a string in the font with a generic fallback and see whether the width differs from the fallback alone. Or it can ask by name: new FontFace(x, 'local("Segoe UI")').load() resolves only if the platform font manager holds a face with that name. On Windows both questions go to the same DirectWrite font collection, so they always agree.
Measured on 2026-09-24 across ten core Windows faces: a real Windows 11 Chrome measured and loaded all ten. The same Linux browser presenting a Windows persona measured Segoe UI and Georgia as installed, but neither loaded by name, because the widths came from stand-in fonts carrying the right metrics under other names. A face that measures but cannot be loaded was never installed.
The row is asserted under a Windows claim only: on Linux, fontconfig serves a request for Arial with a metric clone such as Liberation Sans, which measures but has no face named Arial to load, and that is a real Linux desktop working as designed.
How to resolve it
Width probing and local() loading have to see the same fonts. That is automatic on Windows and hard to arrange anywhere else, since a stand-in would need the real face's name as well as its metrics. Run a Windows persona on Windows, with Clearcote's Windows build or its hosted browsers, or present the operating system the browser actually runs on. Declined for Linux, Android and ChromeOS claims, and for macOS, which has not been measured.
Read in the wild by
Scrapfly
Published FontFace local() loading as a more precise installed-font probe than width measurement, and described the Linux metric-alias behaviour that makes widths and names disagree there. This row turns the difference between the two probes into a Windows-only coherence check.
scrapfly.dev: Font enumeration and OS fingerprintingClearcote (measured)
Clearcote 149 in its Linux Docker image with CC_PLATFORM=windows: Segoe UI and Georgia measure as installed but do not load by name; the other eight core faces measure and load. Recorded as a known gap for a Windows persona on a Linux host.
Real Windows 11 Chrome: 10/10 measure and load. Clearcote Linux, Windows persona: Segoe UI and Georgia measure only. Clearcote Linux, Linux persona: Arial, Times New Roman and Courier New measure only (fontconfig clones), which is why Linux is declined.
Every attribution traces to a published artifact. See the sources and their limits.
Nearby checks in Engine & OS oracles
- JavaScript and WebAssembly read the same CPU
cpu-arch-nan-wasm-vs-jsIEEE-754 leaves the sign bit and payload of a quiet NaN to the implementation, and the two dominant architectures chose differently: x86… - the three heap numbers describe a possible heap
jsheap-triplet-orderingThis check replaces a retired one, and the swap is the lesson. - the platform's system font belongs to the operating system claimed
system-font-vs-claimed-osThe CSS2 system-font keywords — caption, icon, menu, message-box, small-caption and status-bar — are resolved by the HOST platform's font… - text layout uses the font scaler of the operating system claimed
text-scaler-vs-claimed-osEvery operating system draws text with its own font scaler: DirectWrite on Windows, Core Text on macOS, FreeType on Linux, Android and… - a Windows face that loads by name is also visible to text layout
font-loads-by-name-vs-layoutThis is the row above asked in the other direction. A page can learn whether a font is installed by loading it by name, new FontFace(x… - a Windows CJK font answers to its localized family name as well as its English one
font-localized-alias-vs-englishWindows fonts carry their family name in more than one language. - typefaces the claimed OS ships as separate faces measure as separate faces
claimed-os-typefaces-are-distinctA font request is answered by the host's font stack, not by the browser and not by anything the user agent sets, so changing… - the number of font families the page can detect is reported for comparison
font-family-count-vs-claimed-osThe two font rows beside this one ask whether the font layer CONTRADICTS the operating system being claimed.
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 Engine & OS oracles 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 Engine & OS oracles — the family windows-fonts-load-by-name belongs to.
