fix(a11y): accessible names for search inputs + settings selects; reaction OOB label (LC-362) #371

Merged
longjacksonle merged 1 commit from fix/lc-362-a11y-labels into main 2026-06-19 06:11:43 +02:00

A11y MED finding from the UI audit. just test + just test-saas green; the i18n_catalog coverage gate passes (no new keys).

Problem

Several controls were labeled only by a placeholder or a nearby heading, which is not an accessible name (WCAG 4.1.2 / 3.3.2). Separately, the reaction OOB live fragment (ws/reaction_update.html, swapped in on every reaction update) dropped the add-reaction button's aria-label that partials/reaction_bar.html carries, so the icon-only button lost its accessible name after the first live update.

Fix

Added aria-label (reusing the existing placeholder/heading message id, so no new catalog keys) to:

  • sidebar message + people search inputs
  • room-header in-room search
  • switcher-modal combobox
  • locale / theme / density selects on /settings

And restored the partials-reaction-add label on the reaction OOB fragment's add button.

Scope note

This covers the high-traffic controls the audit named. A handful of lower-traffic admin/enclave inputs in the "~30" estimate remain; they can be a small follow-up if desired.

Closes LC-362.

A11y MED finding from the UI audit. `just test` + `just test-saas` green; the `i18n_catalog` coverage gate passes (no new keys). ## Problem Several controls were labeled only by a placeholder or a nearby heading, which is not an accessible name (WCAG 4.1.2 / 3.3.2). Separately, the reaction OOB live fragment (`ws/reaction_update.html`, swapped in on every reaction update) dropped the add-reaction button's `aria-label` that `partials/reaction_bar.html` carries, so the icon-only button lost its accessible name after the first live update. ## Fix Added `aria-label` (reusing the existing placeholder/heading message id, so no new catalog keys) to: - sidebar message + people search inputs - room-header in-room search - switcher-modal combobox - locale / theme / density selects on `/settings` And restored the `partials-reaction-add` label on the reaction OOB fragment's add button. ## Scope note This covers the high-traffic controls the audit named. A handful of lower-traffic admin/enclave inputs in the "~30" estimate remain; they can be a small follow-up if desired. Closes LC-362.
fix(a11y): give search inputs and settings selects accessible names; fix reaction OOB drift (LC-362)
All checks were successful
check-secrets / Kingfisher (pull_request) Successful in 4s
check-secrets / TruffleHog (pull_request) Successful in 6s
check-secrets / Nosey parker (push) Successful in 3s
check-secrets / Kingfisher (push) Successful in 5s
check-secrets / TruffleHog (push) Successful in 5s
check-secrets / Nosey parker (pull_request) Successful in 4s
Check / clippy + fmt + tests (pull_request) Successful in 3m9s
Create release / Create release from merged PR (pull_request) Has been skipped
ce57fc4f2a
Several controls were labeled only by a placeholder or a nearby heading, which is not an accessible name (WCAG 4.1.2 / 3.3.2): the sidebar message + people search inputs, the room-header in-room search, the switcher-modal combobox, and the locale / theme / density selects on /settings. Add an aria-label to each, reusing the existing placeholder/heading message id (no new catalog keys, so the i18n coverage gate stays green).

Also fixes the reaction OOB drift: ws/reaction_update.html (the live twin of partials/reaction_bar.html, swapped in on every reaction update) omitted the add-reaction button's aria-label, so the icon-only button lost its accessible name after the first live update. Add the same `partials-reaction-add` label.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
longjacksonle deleted branch fix/lc-362-a11y-labels 2026-06-19 06:11:43 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
psa-systems/lets-chat!371
No description provided.