Accessibility: add ARIA labels, roles, and live regions to game UI #49

Closed
opened 2026-04-10 21:39:32 +00:00 by Timmy · 1 comment
Owner

The game has zero accessibility attributes. Screen readers can't navigate the interface.

Needed

  • aria-label on all buttons (WRITE CODE, ops boosts, building purchases, project purchases)
  • role="region" on panel sections (actions, buildings, projects, stats, log)
  • aria-live="polite" on the system log and resource counters for dynamic updates
  • role="status" on the save toast and combo display
  • Proper heading hierarchy check
  • Fix exportSave() URL revoke race (URL revoked before download may complete in some browsers)
The game has zero accessibility attributes. Screen readers can't navigate the interface. ## Needed - `aria-label` on all buttons (WRITE CODE, ops boosts, building purchases, project purchases) - `role="region"` on panel sections (actions, buildings, projects, stats, log) - `aria-live="polite"` on the system log and resource counters for dynamic updates - `role="status"` on the save toast and combo display - Proper heading hierarchy check - Fix exportSave() URL revoke race (URL revoked before download may complete in some browsers)
Author
Owner

Work submitted in PR #50.

Full ARIA implementation: aria-label on all buttons, role="region" on panels, aria-live="polite" on log/education/combo/phase, role="progressbar" with dynamic aria-valuenow, skip-to-content link, :focus-visible styles, and aria-disabled on locked buildings.

Work submitted in PR #50. Full ARIA implementation: `aria-label` on all buttons, `role="region"` on panels, `aria-live="polite"` on log/education/combo/phase, `role="progressbar"` with dynamic `aria-valuenow`, skip-to-content link, `:focus-visible` styles, and `aria-disabled` on locked buildings.
bezalel was assigned by Timmy 2026-04-10 23:38:52 +00:00
Timmy closed this issue 2026-04-11 18:53:43 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Timmy_Foundation/the-beacon#49