The task inbox writes the assignee cell of an unclaimed task in a muted gray, #767f88, set by .orchestra-inbox .orchestra-assignee--none in modules/orchestra_inbox/css/inbox.css. Against the row it sits on that is 4.07:1, and against the hovered row (#f8fafc, set a few rules above it in the same file) it is 3.89:1. WCAG 2.1 AA success criterion 1.4.3 asks 4.5:1 of text at that size.
So the one cell on the page that says nobody has picked a task up is the cell some readers cannot read, on a listing built to be used inside public bodies.
Why nothing said so
The project already computes this rather than judging it by eye. PresentationAssetsTest::testEveryColoredTextMeetsTheContrastMinimum reads every color pair out of modules/orchestra_presentation/css/cards.css, computes the WCAG relative luminance, and fails under 4.5:1. It also carries a completeness guard, so a rule added to that file cannot ship unmeasured.
It reads that one file. Five stylesheets ship. The rule is stated at one door of five, and the inbox is the door the failure was behind. Every other shipped pair clears AA when computed: the card and status palettes from 4.69:1 to 17.40:1, the instance-detail timestamp at 5.41:1, and the lifecycle dots at 3.40:1 or better, which is what success criterion 1.4.11 asks of a non-text shape.
Proposed resolution
- Darken the muted assignee to
#646d76, which keeps its blue-gray cast and reads 5.26:1 on the row and 5.03:1 on the hovered row. - Lift the stylesheet parsing, the relative luminance and the contrast ratio out of
PresentationAssetsTestinto a trait both tests use, so one implementation answers the question. - Give
orchestra_inboxa guard of its own overinbox.css, with the same completeness check: a rule that decides how text reads and is named by no case fails the test.
User interface changes
The assignee cell of an unclaimed task in the inbox reads in a darker gray.
AI-Generated: Yes (Claude Code was used to help draft this issue summary and to write the code and tests on the merge request. I reviewed and ran the work myself before posting it.)
Issue fork orchestra-3624518
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #3
mably commentedComment #4
mably commentedComment #6
mably commented