Loading…
Reference in a new issue
No description provided.
Delete branch "build/a11y-sweep"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #772, #775 and #771. Owner, 2026-09-23 (B6, B8): now, in one PR.
This PR only changes colour classes, plus the baseline mechanism. No behaviour or layout changes. Every pair was checked by computing WCAG contrast from Tailwind v4's
oklchpalette, in both modes, against the surface each sits on. Translucent backgrounds (/50,/20) are composited over the paper first. Every changed pair reaches 4.5:1.#772: the faint-line grey
text-gray-400 dark:text-gray-600measured 2.60:1 light and 2.66:1 dark. It's nowtext-gray-500 dark:text-gray-400: 4.84:1 light, 7.73:1 dark (6.82:1 on the nested panel). There were 17 text sites acrossBeatNotesEditor,ColdOpenPanel,ShelfPalette(×3),CampaignPlanning,SessionDetail,SessionShelf(×7) andSessionTable. One site was left alone: a resize grip inSessionShelfthat isaria-hiddendecoration, not text.#775: dark-only chips, and a grey that was too weak
Every bare
bg-{color}-900/50 text-{color}-300(plus the/40and/60siblings in the same status maps) now has a light pair,bg-{color}-100 text-{color}-800, with the old look kept behinddark:. Colour meaning is unchanged: amber is maybe/running, green yes/done, red no/failed.CampaignAiSettings,PostSessionChecklist,RecordingPanel,SessionRsvp,VotingGrid,ContentPacks,Admin(×8 plus two status maps),CampaignDetailandSessionDetail(status maps, badges, the attendance toggle).The issue under-called one of these.
PostSessionChecklist's grey "none" and "skipped" wastext-gray-500 dark:text-gray-500. #775 said its dark side "may already be fine". It isn't: it measures 3.04:1 dark, as well as 3.9:1 light. It's nowtext-gray-700 dark:text-gray-400, at 8.33:1 and 5.64:1.#775's named
SessionDetailitems are all fixed:.text-indigo-400was 2.99:1 on white. The same bare class appeared about 14 times acrossSessionDetailand the children it renders, so every occurrence is nowtext-indigo-600 dark:text-indigo-400, including the hover states: 6.44:1 and up in light, 6.45:1 and up in dark.#771: page-scoped baseline entries
A11Y_BASELINEcan now be keyed by a route pattern such as/campaigns/:id/planning, as well as by an exact pathname or"*". Lookup goes: an exact key first, then the first pattern key that matches;"*"'s entries always apply on top of either.The owner's rule is enforced: every entry's
ownertext must name an issue (#<number>), or the module throws when it loads and every journey fails loudly. The file's contents stay{}. With this sweep, nothing needs an entry. It's documented in the file header and in the e2e README.Left alone, and filed
Same family of defect, but outside both issues' targets, and fixing them here would have doubled the PR. They're filed together as a follow-up:
Admin,CampaignDetailandWikiFrontthat are dark-only;text-green-400/text-red-400status words inQuestLog,CampaignPlanning,LootLedger,entryTypes.jsandVotingGrid;VotingGrid's basetext-gray-500 dark:text-gray-600, at 2.66:1 dark.Checks
--maxWorkers=2). One file hit a worker-start timeout from machine contention on the full run, and passed 8/8 when re-run alone.🤖 Generated with Claude Code