The contrast matrix problem
Tables stack color decisions in ways no other component does. A row in a data table may simultaneously carry a default background, a hover state, a selected state, and a status indicator — and the text, icons, and badges inside that row must maintain accessible contrast against whichever background state is active. A status badge with 4.5:1 contrast on a default white row may drop below 3:1 when the same row is selected and carries a pale blue background. The correct approach is to enumerate every possible row background state (default, hover, selected, flagged, error) and verify all foreground colors against each one — a verification matrix rather than a single contrast check. Most WCAG auditing tools check against the page background, not component-specific backgrounds; the matrix must be checked manually or with specialized tooling.
