Skip to content

fix: add ARIA labels, roles, and alt text for WCAG 2.1 AA compliance#1

Open
ZabaHD4K wants to merge 1 commit intonasa:intfrom
ZabaHD4K:fix/accessibility-aria-labels-alt-text
Open

fix: add ARIA labels, roles, and alt text for WCAG 2.1 AA compliance#1
ZabaHD4K wants to merge 1 commit intonasa:intfrom
ZabaHD4K:fix/accessibility-aria-labels-alt-text

Conversation

@ZabaHD4K
Copy link
Copy Markdown

Summary

  • Add alt text to GPS marker <img> elements in the GPS Location pane (gps-location.tsx)
  • Add aria-label to 10+ icon-only buttons across the UI that previously had no accessible name (add panel, collapse controls, scroll lock, filter, mute, IO info, help, time controls, channel dropdown)
  • Add role="button" to clickable <div> elements acting as buttons (help menu, CODA wordmark, help overlay toggle) so screen readers announce them correctly
  • Add aria-expanded to the comm channel dropdown button to convey open/closed state
  • Add dynamic aria-label to the mute button that reflects current state ("Mute audio" / "Unmute audio")
  • Add accessibility regression test suite (accessibility.spec.ts) with 17 assertions validating all ARIA attributes and alt text are present

Files changed

File Change
src/components/panes/gps-location.tsx alt on marker img, aria-label on lock button
src/components/framework/dockview/dockview-header-actions.tsx aria-label on add panel + collapse button
src/components/framework/dockview/dockview.tsx aria-label on watermark add panel button
src/components/interface/header.tsx role+aria-label on help menu & wordmark, aria-label on time buttons
src/components/interface/pane-help-control-button.tsx role="button" + aria-label on help toggle
src/components/panes/comm.tsx aria-label+aria-expanded on channel dropdown, aria-label on filter & scroll lock
src/components/panes/video/video-controls.tsx Dynamic aria-label on mute, aria-label on IO info button
src/components/accessibility.spec.ts New — 17-assertion regression test suite

Motivation

Multiple interactive elements in the CODA UI lacked accessible names, making them invisible or unlabeled to screen readers. This fails WCAG 2.1 Success Criterion 4.1.2 (Name, Role, Value) at the AA level. These changes are minimal, non-breaking, and improve the experience for users relying on assistive technology.

Test plan

  • Run npm test — the new accessibility.spec.ts should pass all 17 assertions
  • Verify no visual regressions in the UI (changes are attribute-only, no layout impact)
  • Optionally test with a screen reader (VoiceOver/NVDA) to confirm buttons are now announced

Add missing accessibility attributes across 7 component files:

- Add alt text to GPS marker images in gps-location pane
- Add aria-label to icon-only buttons (add panel, collapse controls,
  scroll lock, filter, mute, IO info, help)
- Add role="button" to clickable divs acting as buttons (help menu,
  CODA wordmark, help overlay toggle)
- Add aria-expanded to channel dropdown for screen reader state
- Add aria-label with dynamic state to mute button ("Mute"/"Unmute")

Include accessibility regression test suite (17 assertions) that
validates all ARIA attributes and alt text are present in source.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant