# Ballbox html-first accessibility plan
## Goal
Shift key Ballbox flows toward semantic HTML first, then JS enhancement.
## Principles
- Prefer native elements before custom widgets.
- Use labels, fieldsets, lists, headings, and forms.
- Keep critical actions reachable by keyboard with visible focus.
- Use ARIA to expose state, not to replace missing semantics.
- Keep selection and status visible in the document flow.
## Scope executed now
1. `classes-by-date`
- custom overlay flow replaced with in-page detail panel
- slot selection exposed with `aria-expanded`, `aria-controls`, and live status
- filters and results structured as labeled sections/lists
2. `admin/payments`
- custom Radix selects in QR forms replaced with native `