How to fix
How to fix form fields without labels
A placeholder is not a label. When a field has no associated label, screen-reader users hear "edit text" with no idea what to type. Here is how to fix it properly.
Why this fails
WCAG 1.3.1 Info and Relationships and 4.1.2 Name, Role, Value require every form control to have a programmatic label, so assistive technology can announce what the field is for. The usual culprits:
- Using a placeholder instead of a label (it disappears when typing and is not a reliable accessible name).
- A visible label that is not associated with its input.
- Icon-only or search fields with no text at all.
How to fix it
Associate a real <label> with the input by matching for to the input's id:
<label for="email">Email address</label>
<input id="email" type="email" name="email">
Wrapping also works: <label>Email <input type="email"></label>. When there is no visible label by design (for example a search field with a button), give it an accessible name instead:
<input type="search" aria-label="Search products">
You can keep a placeholder as a hint, but it must be in addition to a label, never instead of one.
Check it across your site
Run the free scan above to list every control missing a label, with the exact element shown. Fix the markup, then re-scan to confirm. The same checks run as a browser extension and a CI gate so new forms do not regress.
Frequently asked questions
Is a placeholder the same as a label?
No. A placeholder is a hint that disappears on input and is not a reliable accessible name. Every field still needs an associated label.
How do I label a field without showing a visible label?
Use aria-label on the input, or aria-labelledby pointing at existing text. The field gets an accessible name without a visible <label>.
Do radio buttons and checkboxes need labels too?
Yes. Each one needs its own associated label, and a group of them should be wrapped in a <fieldset> with a <legend>.
Which WCAG criteria does this cover?
Mainly 1.3.1 Info and Relationships and 4.1.2 Name, Role, Value, with 3.3.2 Labels or Instructions for providing the visible label or hint.
Related guides
See what's actually broken on your site
Real axe-core results, every element outlined. No email wall, no fake “compliant” badge.
Run a free scanLast updated 2026-06-26.