# 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 `