Board empty-column placeholder text fails AA contrast (muted on surface = 4.16:1)
Type: bug · Parent: Epic 3 (Boards) · Surfaces: the empty board column placeholder · Discovered in: Subtask 6.15.4 (board-filter story-closing a11y sweep, MOTIR-444).
The empty-column placeholder text (BoardColumn.tsx:172, the emptyColumn copy shown when a column has no cards) renders text-xs text-(--el-text-muted) — muted #787671 on the column surface #f6f5f4 = 4.16:1, below the WCAG 2.1 AA minimum of 4.5:1 for normal text. A strict axe sweep over the board flags it as a color-contrast violation (4 nodes — one per empty column).
Pre-existing (Story 3.2 board UI), not introduced by Story 6.15. Surfaced because 6.15.4 added the first axe sweep that crosses the board columns; that sweep was then scoped to the filter affordances (the 6.15 surface) so the board-filter story could close, and this board-column issue logged here per the CLAUDE.md pre-existing-bug rule.
Acceptance criteria
- The empty-column placeholder text meets AA (>= 4.5:1) on the column surface — e.g. use
--el-text-secondary(#5d5b54, ~7:1) instead of--el-text-muted, or darken the text on the dashed-border placeholder. - A strict axe (wcag2aa) sweep over a board with empty columns reports zero
color-contrastviolations.
Context refs
app/(authed)/boards/_components/BoardColumn.tsx:172(the placeholder<p>)- The same faint/muted AA pattern was just fixed for the filter popover
FacetLabelin MOTIR-444 (faint -> secondary).