1
0
mirror of https://github.com/element-hq/element-web.git synced 2026-10-23 11:09:01 +03:00
Files
David Langley d3dafba29c Make Spotlight result text and badges legible at rest and in high contrast (#35037)
Two colour defects in Spotlight results, plus a test that could not see either:

- The public-room alias and the room context details are 12px text in
  $tertiary-content at rest, which is 3.5:1 against the dialog background in the
  light and dark themes - below the WCAG AA 4.5:1 for text that size. Use
  $secondary-content at rest (5.2:1 light and dark, 8.9:1 high contrast).
  Hovered and selected rows keep $primary-content, since secondary is only
  4.2:1 against the hover background.

- In the light high-contrast theme a leftover override painted the notification
  badge with the dialog background whenever its row was hovered or selected,
  turning a red count badge into a white disc and hiding the count. Remove it;
  the badge's own colours are fine (count text is 5.3:1 on red and grey).

The legibility test claimed to cover "text across Spotlight surfaces" but only
ever scanned a single hovered row, so neither defect could fail it. It now
returns two matching rooms per search so a row at rest sits beside the selected
one, puts the joined room in a space so context details are rendered, and leaves
an unread mention so the first result - selected by default - carries a badge
with a count. axe scans all rows for contrast; the selected badged row and a row
at rest are also screenshotted, the former because axe reports the overlapping
badge as incomplete rather than as a violation, the latter to pin the resting
colours. No hover and no retry is needed. Against the previous CSS the test
fails in all three themes on exactly these defects; with the fix it passes 30/30
across them.

Fixes #34991
Fixes #34841

Signed-off-by: David Langley <davidl@element.io>
2026-09-23 17:18:36 +00:00
..