Colour Contrast Report — every brand pair, measured

Pairs measured

10

file declares 10

Meeting their role

10of 10

as judged by the file

Lowest text ratio

4.72:1

AA needs 4.5:1 for normal text

Every pair, and the arithmetic

10 pairs · generated 2026-10-14 05:35 UTC · WCAG 2.1 relative luminance · CC0-1.0

PairForeground on backgroundRatioRoleVerdict
body text on the dark ground#f2ece4 on #16110f15.96:1textAA at any size
body text on paper#16110f on #f2ece415.96:1textAA at any size
accent text on the dark ground#ef4d67 on #16110f5.29:1textAA at any size
accent text on paper#b2102a on #f2ece45.96:1textAA at any size
gold figures on the dark ground#ffd97a on #16110f13.79:1textAA at any size
gold figures on paper#8a6100 on #f2ece44.72:1textAA at any size
live indicator on the dark ground#37e6d2 on #16110f11.96:1textAA at any size
live indicator on paper#0d6f66 on #f2ece45.14:1textAA at any size
the identity garnet as a FILL on dark#c8122f on #16110f3.20:1fillfill, 3:1 or better
white text on the identity garnet fill#ffffff on #c8122f5.86:1textAA at any size
Provenance
Dataseta11y-status
Generated2026-10-14 05:35 UTC
Dark ground#16110f
Paper ground#f2ece4
PublisherGarnet Grid Consulting LLC
LicenceCC0-1.0
File/assets/data/a11y-status.json

What this covers, and what it does not

The rows above are the colour system, and only the colour system. The dataset’s own scope field says so: keyboard order, focus visibility, landmark structure, alt text and motion preferences are checked separately and are not in this file. A table where every pair meets its role is therefore not a claim that the site is accessible — it is a claim about the pairs listed above and nothing else, which is as far as arithmetic can honestly take you.

Each pair is judged against the role the palette gives it. A token meant for text has to clear 4.5:1 at normal sizes; a token meant as a FILL — a button, a rule, a section marker — is measured against the ground it sits on, which says how visible the block is rather than whether copy could be set on it. Both readings are in the table and both are labelled, because collapsing them into one “pass” column is how a palette ends up with red text nobody can read.

How the figures are produced

WCAG 2.1 relative luminance, computed from the sRGB hex values declared in src/app/brand.css. Arithmetic, not sampling: these are the declared token values, so each figure is exact rather than estimated from a screenshot of a rendered page. Nothing on this page recomputes them — the ratio and the two booleans beside it are read from the file as published.

Every row prints the two hex values it was computed from, and that is deliberate. A figure is only as current as the token it was read from, so if a token moves after the file is generated, that row is stale until the next run. Printing the hex instead of the token name is what makes such a drift visible rather than silent: compare any row against brand.css and you can settle it yourself.

Why publish this

Most consulting firms claim “WCAG-compliant” without showing a measurement. We have been on both sides of that — auditing sites that passed an accessibility review and still had keyboard traps. So this page publishes the part that can be computed exactly, names the part it does not cover, and leaves the file open so anyone can recompute it.

Open data. /assets/data/a11y-status.json — CC0-1.0, no auth, no rate limit.