Skip to content
All fingerprint checks
Engine & OS oracles

a Windows CJK font answers to its localized family name as well as its English one

Pim· Clearcote Research 3 min readCheck id font-localized-alias-vs-english

Under a Windows claim on Chromium, every probed CJK face that resolves under its English name also resolves under its localized name, with an identical width.

What a detector infers

Windows fonts carry their family name in more than one language. SimSun is also 宋体, Microsoft YaHei is also 微软雅黑, MS Gothic is also MS ゴシック, and Malgun Gothic is also 맑은 고딕. DirectWrite matches a family request against every localized name in a font's name table, whatever the UI language. So on a real Windows install both spellings select the same face, and text set in either measures the same width to the last fraction of a pixel.

A browser that shapes its font list with an allowlist of English names breaks this: the English spelling still resolves and the localized one falls back to the generic. This row measures fifteen English and localized pairs that were verified on a Windows 11 host. It asserts only for pairs whose English name is present, requiring the localized name to resolve too, to the same width.

Measured on 2026-09-24: Chrome 153 (normal, headless and zh-CN) and Edge 153 keep every pair coherent. Brave 153 drops every localized name, because its font protection allowlists English names; it is declined through the native navigator.brave check. Firefox is declined as well.

It passed every pair when probed on its own, but in a full audit run it missed three localized Light names, because Gecko loads a font's localized names lazily and the answer depends on when the page asks.

How to resolve it

The font list presented to the page has to behave like the font collection underneath it, and on Windows that collection answers to every language's family name. Filtering by an English allowlist breaks that for every CJK face at once. Present the host's fonts unfiltered, or resolve a requested name to its face before deciding whether to hide it, so both spellings get the same answer.

Declined for Brave, for Firefox and other non-Chromium engines, and for claims other than Windows, which were not measured.

The font stack under the user agent

Read in the wild by

CloakBrowser issues

A user compared the v150 binary with genuine Chrome on the same Windows 11 machine. Every localized name was missing (宋体, 微软雅黑, 微軟正黑體, 新宋体, 游ゴシック, 맑은 고딕, MS ゴシック, MS Pゴシック) while the English names of the same fonts were present. Genuine Chrome detected both spellings.

CloakHQ/CloakBrowser #474 (v150 binary diverges from Chrome for fonts)

CloakHQ/CloakBrowser#474

CloakBrowser (measured)

150 and 151 resolve every present English CJK name and none of the localized ones. 152 answers to both, so the allowlist was fixed there. The same 152 build still hides Franklin Gothic Medium from layout while local() loads it (see the row above).

15 pairs on one Windows 11 host. CloakBrowser 150.0.7871.114.3-pro: 10 of 10 present pairs broken. 151.0.7922.108.3-pro: 14 of 14 broken. 146, 148, 152: 0 broken. Chrome 153 (3 modes), Edge 153, Clearcote r27: 0 broken. Brave 153: 15 of 15 broken (declined). Firefox 144: 0 broken in isolation, 3 Light aliases missed in a full audit run (Gecko declined).

CloakBrowser (measured)

Every attribution traces to a published artifact. See the sources and their limits.

Nearby checks in Engine & OS oracles

See all 14 checks in Engine & OS oracles
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 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 font-localized-alias-vs-english belongs to.