Pick a crate of lager, shandy or cider and we will knock 50% off a box of crisps. Take the crate
Guarded

Two pairings fail. Both are tempting. Both are refused.

Ochre on chalk is about 2.1:1. Corn on chalk is about 1.9:1. Body text needs 4.5:1 under WCAG 2.2 AA. Neither pairing is anywhere near it, both of them look wonderful in a mock-up, and the build declines to render either.

The guard

The two failures, and what happens instead.

PairingRatioNeededWhat the build does instead
Ochre #E2871B on chalk #EDE6D6 2.1:1 4.5:1 Uses ochre deep #8F4F07 at 5.1:1, or flips it so ochre is the ground and ink is the text at 5.9:1
Corn #E9B93D on chalk #EDE6D6 1.9:1 4.5:1 Uses the darkened corn companion, held to large text only, or ink on corn at 8.8:1
Ochre on a reversed band Varies 4.5:1 Every button on a moss, ochre or accent ground has its foreground forced to ink
Corn on ochre 1.5:1 4.5:1 Never rendered. It is the pairing the stylesheet names explicitly as the one to avoid
The mechanism

How the guard actually works.

At authoring time

Named in the tokens file
The failing pairs are annotated in the stylesheet itself
Deep variants published
ochre-deep and the corn companion exist precisely so nobody reaches for the pigment
Reversed grounds
ground--ochre and ground--moss force their foreground to ink

At render time

Buttons on accent grounds
Foreground forced to ink, not inherited
Eyebrows and links on ochre
Forced to ink
Headings on ochre
Forced to ink
Poster tiles
Ochre and corn tones get ink text; every other tone gets chalk

What is not guarded

Illustration plates
They carry no text, so the question does not arise
Chart fills
Labelled in ink, outside the fill
Beast marks
Decorative, and aria-hidden
The reasoning

Why name the failures rather than delete the colours.

The obvious response to a pigment that fails contrast is to darken it until it passes. We did that, and the result is ochre deep — a perfectly good brown that is not the colour on the poster.

So both exist. The bright one is a ground and an illustration colour and it is the reason the site looks like the thing it is imitating. The dark one is the text colour. Keeping both, and naming the failing pairing in a comment in the tokens file, means the next person to open that file is told about the trap before they fall into it.

Deleting the bright pigment would have solved the accessibility problem and lost the identity. Keeping it without the annotation would have kept the identity and shipped something illegible about twice a year.

What it enforces

The guard, in two columns.

Enforced

  • Every failing pair named in a comment in the tokens file
  • A published dark companion for both failing pigments
  • Foreground forced to ink on every accent ground
  • Contrast ratios published on the palette pages, rounded down
  • Focus rings that do not rely on colour alone

Refused

  • Any body text on ochre or corn
  • Any button label that inherits its colour from a bright ground
  • Any ratio quoted more favourably than it measures
  • Any colour used as the only carrier of meaning
  • Any "it is only a caption" exception

This is not the whole of accessibility

Contrast is the part of accessibility that is easiest to measure, which is why it is the part everybody publishes. Reduced motion, focus order, target size, form labelling and sensible headings all matter at least as much and are harder to put in a table.

The accessibility statement

Wondering

The questions the guard gets.

Because the bright one is the identity. A wheat-pasted farm-shop poster is ochre and corn, not brown and olive, and a site that removed them would be a tidier site that looked like nothing in particular.

Corn does, because it is the summer state and people reach for it. The other three are never used as text colours at all, so there is nothing to guard.

AA allows 3:1 for text above 24px, or 18.66px bold. Neither failing pair clears even that, which is why they are refused outright rather than allowed at display sizes.

On a demonstration build, probably. If you find one, it is a bug rather than a decision, and we would like to be told.

The palettes themselves.

Five pigments that move with the year, and five that refuse to.

Next along the route

Nightworking

Carry on
Basket Book the pub Plot a field Join the list Bother us

Snooping, briefly.

We use a small number of cookies to keep your basket upright and to work out which pages people actually read. We do not sell anything about you to anyone, because that would be a rotten way to behave.

Read the detail