Ref #226. Three serious axe findings, all pre-existing, on pages the
sixteen-page scan never covered: label chip contrast, <pre> blocks with
no way to focus them, and links that share a line with other text.
- A label chip carries a tone per scheme. Chip text is 12px, which owes
4.5:1 against the ground mixed from the colour itself, and the band
that clears it on white ends below the band that clears it on the dark
canvas — one colour cannot serve both. The stored hex still names the
label;
chipTonespicks the tone, keeping the hue where scaling in linear light reaches the ratio. A page stamped light or dark now setscolor-schemewith its tokens, whichlight-dark()reads and native controls follow. - Every
prescrolls sideways, so every one takestabindex="0", the attributefocusableBlocksalready puts on rendered markup. - A link sharing its line with other text is underlined: a path crumb, a heading naming an owner, an empty-state note.
- The labels table's actions column header was empty.
Verified with the axe runner against a local instance in four theme paths (system light, system dark, stamped dark under a light OS, stamped light under a dark OS): zero violations on labels, issues, blob, blame, tree, search, snippets, notifications, builds, repo, landing and login. Production before the change reported 30 contrast nodes on the labels page, 13 blame nodes plus one each on the build and search pages, and breadcrumb findings on blob and snippets.