feat(a11y): IconButton primitive + aria-label/title on icon-only buttons; non-color unread status #263
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/mapps-261-a11y-icon-buttons-status"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Add a shared IconButton primitive (src/components/icon_button.rs) whose
labelprop is required and is emitted as BOTH aria-label and title, so an icon-only control can never ship without an accessible name and hover tooltip. Adopt it for the modal close button and the Alert/toast dismiss button (the canonical XMarkIcon close controls).Backfill aria-label and/or title on the remaining icon-only buttons so each carries both: the mobile nav close/open and notification bell (layout.rs), the overflow "..." menu (overflow_actions.rs), the collapsible-rail expand/collapse/open/close chevrons (collapsible_rail.rs), and the calendar prev/next month + prev/next day chevrons (calendar.rs).
Stop conveying unread state by color alone: the red notification dot now nests an sr-only "{n} unread notifications" label so its meaning has a textual equivalent in the accessibility tree. Status badges already render text, so no other color-only indicators remain.
#MAPPS-261
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com
Add a shared IconButton primitive (src/components/icon_button.rs) whose `label` prop is required and is emitted as BOTH aria-label and title, so an icon-only control can never ship without an accessible name and hover tooltip. Adopt it for the modal close button and the Alert/toast dismiss button (the canonical XMarkIcon close controls). Backfill aria-label and/or title on the remaining icon-only buttons so each carries both: the mobile nav close/open and notification bell (layout.rs), the overflow "..." menu (overflow_actions.rs), the collapsible-rail expand/collapse/open/close chevrons (collapsible_rail.rs), and the calendar prev/next month + prev/next day chevrons (calendar.rs). Stop conveying unread state by color alone: the red notification dot now nests an sr-only "{n} unread notifications" label so its meaning has a textual equivalent in the accessibility tree. Status badges already render text, so no other color-only indicators remain. #MAPPS-261 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>f175ad552d09095880de09095880de3667835ff0