Form labels: every field needs a name
A form field without a label is a blank box to a screen reader. Contact, booking and checkout forms are where this costs real customers.
Who it affects
Screen reader users hear only “edit text” when a field has no label. Voice-control users can't say the field's name to move into it. And everyone loses when a placeholder disappears the moment they start typing.
Use a visible label, connected to the field
Put a label element on every field and point it at the field's id. Clicking the label then focuses the field, and screen readers read the label when the field gets focus.
<label for="email">Email</label>
<input id="email" name="email" type="email" autocomplete="email" required>The autocomplete attribute tells browsers and assistive tools what the field is for, so they can fill it in (WCAG 1.3.5).
A placeholder is not a label
Placeholder text is usually too light to read, it vanishes when someone types, and some assistive tools ignore it. Keep the label visible; use the placeholder, if at all, for an example of the format.
Group choices
Radio buttons and checkboxes that answer one question go in a fieldset, with the question as its legend.
<fieldset>
<legend>Pickup or delivery?</legend>
<label><input type="radio" name="mode" value="pickup"> Pickup</label>
<label><input type="radio" name="mode" value="delivery"> Delivery</label>
</fieldset>Required fields and errors
- Say a field is required in the label text (“Phone (required)”) or with the required attribute, not with a red asterisk alone.
- Show errors next to the field, in words that say how to fix it: “Enter a phone number with area code”, not “Invalid input”.
- Connect the error to the field with aria-describedby, so it is read when the field gets focus.
What Scanpoof checks, and what needs a person
Found automatically
- Text fields with no accessible name
- Dropdowns and custom ARIA inputs with no name
Needs a person
- Whether each label is clear to a visitor
- Error messages, which appear only after someone submits the form
- Multi-step flows such as checkout and booking
For some of these, Scanpoof's AI writes a fix, tests it on your live page and waits for you to approve it. How AI Fix works.