Deze pagina is nog niet in uw taal. U leest de Engelse tekst.
Glossary
Font fingerprint
A font fingerprint is an identifier a site builds from which typefaces your machine can render.
How a site reads your fonts
A page asks for a string in one named family and names a fallback after it. A family that is not installed never draws, the fallback draws instead, and the width gives the answer away.
Nothing appears on screen and no permission is asked. Hundreds of families are measured in the time the rest of the page takes to load.
- 1
Draws a short string
One line in the named family, set large so a small difference in shape becomes a measurable difference in width.
- 2
Compares it to the fallback
Equal width means the family is not there. A different width means it is.
- 3
Collects the set
The families that answered are folded into one value, and on an untouched machine that value is the same on every visit.
What the list gives away
A font list is the history of a machine. Software brings families with it, and so do the language packs the system was set up with.
The software you installed
A design suite, an office suite and a developer toolchain each leave their own families behind.
The languages you work in
Scripts the system was never set up for are simply absent, and absence reads as clearly as presence.
The system underneath
Every operating system ships families of its own, so the list also states which system it came from.
The rare family
One unusual typeface narrows a machine faster than a dozen common ones, because almost nobody else answers for it.
What our engine does
Every profile declares a set of its own: the families that system always ships, plus about half of the optional ones drawn from the profile seed. Two profiles made on one computer answer with two different sets.
A named family outside the set reports as unavailable, so text falls back exactly as it would on a machine where that family had never been installed.
The set varies and the order does not
Families keep the order of the full list, because a shuffled order would be a signal of its own.
Other names for the same files
On macOS and Linux the set also admits the internal names of families it already carries, because those systems are asked that way.
Fonts a page brings itself
A typeface the page loads from its own address is resolved before any of this and renders as the designer intended.
What the shipping build answers
The lines below come from the acceptance run of the build shipping today. It ran on a Windows profile whose set holds thirty four families.
The declared family renders
The first family of the set is measured against the fallback and comes back wider than it.
visibleFamilies outside the set stay away
Five well known families are probed one by one, and those the set does not hold must stay silent.
0 leakedGeneric families follow the set
Cursive, fantasy and math are assigned from what the profile declares instead of from the host system.
from the profile
Often confused with
Canvas fingerprint
Text drawn on a canvas depends on the fonts, but the value a site keeps is the picture. Separate surface and separate defence.
Web fonts
A typeface the page downloads is the same for every visitor, so it says nothing about you. Only local families do.
The list in a document editor
An editor shows you the whole system list. What a page measures without permission is narrower than that.
How to check your own
The free check on this site counts the families it finds in the browser you are reading this in and names the first of them.
Inside the app the self-test runs in a profile against the engine that profile launched. It measures the declared family, then probes five well known families, and prints what came back.
What this does not do
- It does not remove a font from your computer. The set decides what pages are told, and everything you have stays where it is.
- It does not give a phone profile the fonts of a phone on a desktop machine. Those families are genuinely not there, and the self-test says so instead of passing the line quietly.
- It does not give each site a different set. The set belongs to the profile, and a list that changes between two tabs of one session is a signal by itself.
- It does not make every system separate the generic families. Some desktops collapse them with no seed at all, and asking for a difference there would mean faking one.
Check it
Every line above comes from a file you can open.
- The font check the self-test runs
- apps/desktop/src/lib/fpAudit.js
- Where a profile's set comes from
- packages/shared/src/index.js
- Generic families are assigned from the set
- apps/desktop/src/lib/genericFonts.js · apps/desktop/test/generic-fonts.js
- The acceptance run quoted above
- engine/приёмка-отчёт.json · apps/desktop/test/fp-audit.js
Questions
- Can a site read every font I have?
- By measuring, only the families it thought to ask about. The interface that hands over the whole system list asks permission first, and refusing it is ordinary.
- Does deleting fonts help?
- Rarely. A very short list is as unusual as a very long one, and it is rarity that identifies a machine.
- Do two profiles answer with two sets?
- Yes. The optional half of each set is drawn from the profile seed, so profiles made on one computer do not share a font list.
- Will pages still look the way they should?
- Yes. A typeface a page loads from its own address is untouched, and the families every system ships stay in every set.
See what your own profile answers
The self-test runs inside a profile and shows all 29 measurements, green and red alike.