Forms are where accessibility often breaks down.
Labels:
<label for="email">Email</label>
<input id="email" type="email" />
Error messages:
- Associate with input via aria-describedby
- Don't rely on color alone
- Be specific about what's wrong
Required fields: Use aria-required or required attribute.
Grouping: Use fieldset and legend for related inputs.
Autocomplete: Use autocomplete attribute to help password managers and assistive tech.