# Ballbox accessibility tasks Status legend: pending | in_progress | done 1. done - coach-settings-page-client: package format and active state controls to semantic grouped controls. 2. done - coach-settings-page-client: students table contact save/error/status semantics and grouping. 3. done - coach-settings-page-client: availability section audit for html-first labels/help/status. 4. done - club-coaches-page-client: calendar grid action text/status cleanup and explicit helper copy. 5. done - payments-admin-client: CRUD/session forms now use semantic form/fieldset structure, explicit labels, helper copy, and stronger status/live messaging. 6. done - authenticated/public nav final keyboard/a11y polish audit: public/workspace navs now expose explicit nav labels, `aria-current` or pressed state, and screen-reader labels on menu/profile triggers. 7. done - cross-flow pass: `/coaches`, `/classes/[offerId]`, and `/clubs/venues/[venueId]` now expose semantic live-region error/status messaging for auth submit, class request submit, and venue autosave/update flows. 8. done - added contract tests for weekly availability grid button/disabled semantics and classes request alert/status live-region behavior. 9. done - validation run: `pnpm exec eslint components/coach-settings-page-client.tsx components/weekly-availability-grid.tsx components/club-coaches-page-client.tsx` and `pnpm typecheck` passed. 10. done - final summary captured: loop shipped semantic grouping/labels/status fixes across coach settings, club coaches, payments admin, auth/public nav, classes request, and venue autosave flows, plus contract coverage for weekly availability grid semantics and class-request live regions. 11. done - `/clubs/coaches` calendar and manual-class composer now use explicit disclosure buttons instead of summary-only toggles, focus the opened panel heading/first field, expose grid semantics on the day/court calendar, and add table captions for analytics, venue, and coach data tables. 12. pending - follow-up pass on coach/student management flows for explicit labels, row action names, and keyboard-only success/error discoverability across `/coaches/settings`.