-
Notifications
You must be signed in to change notification settings - Fork 1
feat: accessibility — add aria-labels to filters and form controls without a visible label #5
Copy link
Copy link
Open
Description
Problem
Several interactive controls in the admin panel lack accessible labels, making them unusable with screen readers (NVDA, VoiceOver) and failing WCAG 2.1 AA minimum criteria.
Concrete cases identified
1. Inventory filter select missing aria-label
File: ruteria/app/(admin)/admin/inventario/page.tsx (~line 160)
// Current
<select value={filterCategoria} onChange={...} className="...">
// Correct
<select value={filterCategoria} onChange={...} aria-label="Filter by category" className="...">2. Inputs in ProductoSheet without an associated <label>
File: ruteria/components/admin/ProductoSheet.tsx (~lines 89–122)
Inputs rely on placeholder as the only field indicator. Placeholders disappear on typing and are not a substitute for a proper label.
// Add htmlFor + id on each field, or aria-label where a label element isn't feasible
<label htmlFor="codigo-input">Code</label>
<input id="codigo-input" {...register('codigo')} />Task
- Audit all
<select>elements without<label>oraria-labelincomponents/admin/andapp/(admin)/. - Audit inputs in Sheets/Dialogs that only have
placeholder. - Add
aria-labelto controls where adding a visible<label>isn't feasible due to layout. - Prefer
<label htmlFor>when the visual space allows it.
Acceptance criteria
- No
<input>,<select>, or icon-only<button>is left without an accessible name. - Verifiable with the axe DevTools extension — zero "Form elements must have labels" errors.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels