Forms & errors
A Form Field Has More than One Label
When two labels point at one field, screen readers and voice tools disagree on which to use, so people may hear the wrong words or nothing useful.
form-field-multiple-labelsWCAG 2.0Introduced in WCAG 2.0.Level AA — the minimum. Missing it blocks people outright.
- Status
- ModerateModerate — An annoyance, with a workaround.CurrentScanners run this rule today.
- Owner
- DesignDevContentTest
- Audit
- Automated+ManualA scanner finds it; a person confirms the fix.
Why it matters
A label tells people what to type in a field. Code connects each <label> to its field, so assistive tools can read it out.
Browsers and screen readers handle two labels differently. Some read the first, some the last, some both. You can't control what people hear, so the field's purpose can be lost.
Who it affects
| Who | What they experience | Impact |
|---|---|---|
| Screen reader users | They may hear only the hint or error, not the field's real name, or a jumbled mix of both. | High impact |
| Voice control users | Saying the visible label may not work, because the tool picked the other label as the name. | High impact |
| Low-vision users (magnification) | Affected only if they also use a screen reader; clicking either label still focuses the field. | Partial impact |
| Cognitive and neurodivergent users | Hearing or seeing mixed instructions makes it harder to know what to enter. | Partial impact |
Business & product impact
| Area | Why | Impact |
|---|---|---|
| Legal | It is flagged against WCAG 3.3.2 Labels or Instructions at Level A. Complaints under Australia's Disability Discrimination Act point to WCAG 2.2 AA, and EN 301 549 applies in Europe. | Moderate impact |
| Conversion | Confusing fields in sign-up or checkout forms cause errors and drop-outs. | Moderate impact |
| SEO | Search engines don't care about this — no real benefit. | Low impact |
| Brand trust | Forms that read out wrongly make a site feel careless to screen reader users. | Low impact |
| Cost to fix | Usually a small markup change. Fix the shared form field component once. | High impact |
Fixing it in code
A hint written as a second label
Don't
<label for="email">Email</label>
<input id="email" type="email">
<label for="email">We never share your email</label>A screen reader says: “Varies by tool: "Email, edit text", or "We never share your email, edit text", or both run together”
Do
<label for="email">Email</label>
<input id="email" type="email" aria-describedby="email-hint">
<p id="email-hint">We never share your email</p>A screen reader says: “Email, edit text, We never share your email”
One label gives the name; aria-describedby adds the hint after it.
A label that wraps the field and also uses for
Don't
<label for="qty">Quantity</label>
<label>Amount <input id="qty" type="number"></label>A screen reader says: “Varies: "Quantity", "Amount" or "Quantity Amount, spin button"”
Do
<label for="qty">Quantity</label>
<input id="qty" type="number">A screen reader says: “Quantity, spin button”
One label means every tool reads the same name.
Designer's handoff note
Give each field one visible label. Show hints and errors as separate text, and mark them as hint or error in your specs.
Write down what the field should be called, so developers don't add a second label for extra words.
Quick test
Tool
NVDA (opens in a new tab) (free on Windows) or VoiceOver (opens in a new tab) (on every Mac)
Checklist
- Pass
- You hear the field's visible label first, then any hint.
- Fail
- You hear the hint or error instead of the label, or two labels mashed together.
Check these at the same time
- A custom input field has no name
aria-input-field-name - A form field has no label
label
What a green scan still misses
A scanner spots two labels on one field. It can't tell which words should be the name, or whether hints and errors are linked properly — listen to check.
Reference
- Rule ID
form-field-multiple-labels- Raised by
- axe-core: “Form field must not have multiple label elements”
- WCAG
- 3.3.2 Labels or Instructions (opens in a new tab) · Level A · since WCAG 2.0
- Other standards
- EN 301 549 9.3.3.2 · RGAA 11.2.1
- Last reviewed
- 14 October 2026