Reference
Design system
Every ratio was computed with tools/a11y/contrast.py against all three grounds.
This page is noindex: it documents the template for whoever builds with it.
One accent, and no second figure colour
Day 117 needed two figure colours because it was arguing that two numbers were different kinds of fact. This page is not. Every figure here is the same kind of thing — money — and the only cell that takes the accent is the session fee, because the point being made is that it does not change. Colouring more of the table would say less.
The quote table is transposed
Line items down the side, buyers across the top — the opposite of how a comparison
table is usually built. It puts the identical session fee on one row, repeated three times
across the page, so the argument is stated as a layout rather than as a claim. Row headers
are <th scope="row"> and the column headers carry the buyer, so a screen
reader reads “Session fee, National insurer, $275” per cell.
The markup publishes no price at all
A Service with an OfferCatalog naming every medium and territory,
and not one Offer, price or priceSpecification
anywhere in it. Schema's Offer has a single price and this page's whole argument is that
there is no such number: each figure is a twelve-month licence for one medium in one
territory, session fee excluded, term multiplier applied separately. A machine reading
“180” as the price of the service would make exactly the mistake the page
exists to prevent. Sixth day running that the structured data says less than the page.
The FAQ is an accordion again
Day 117 removed its accordion for a reason that was true of that page: a site refusing to hide its numbers should not hide its answers. It is not true here. These answers are long, and six of them open at once would bury the matrix that the page is actually for.
Type
Piazzolla — display
Golos Text — $275 · $3,665 · 3.5×
Body is the system stack. Golos Text carries every figure with
tabular-nums, because a rate card whose columns do not line up is a rate
card nobody trusts. Neither face appears in days 1–117.
Tokens
| Swatch | Token | Value | Measured |
|---|---|---|---|
--color-bg | #EDE7DC | Manila paper, not another near-white | |
--color-bg-alt | #E2DACA | Banding | |
--color-surface | #F8F5EE | Cards | |
--color-text | #1A1613 | 14.61 / 12.94 / 16.51:1 · AAA | |
--color-text-muted | #5C5346 | 6.14 / 5.44 / 6.94:1 · AA | |
--color-border | #847758 | 3.58 / 3.17 / 4.05 — non-text only | |
--color-accent | #9C2B12 | Burnt red — 6.17 / 5.46 / 6.97:1 · AA | |
--color-on-accent | #FFFFFF | 7.59:1 on accent · AAA | |
--color-band | #1A1613 | The band inverts: dark on a light site | |
--color-on-band | #EDE7DC | 14.61:1 on band · AAA | |
--color-on-band-muted | #A69B8A | 6.57:1 on band · AA | |
--color-accent-on-band | #E8683F | 5.55:1 on band · AA |
The border token clears 3:1 against all three grounds, which is what WCAG 1.4.11 asks of a non-text boundary. It is never used for text.