Skip to content
3.3.2 · Level A · WCAG 2.0 · Understandable → Input Assistance

Labels or Instructions

Every form control has a label or instructions describing what input is expected.

Why it matters

A placeholder is not a label — it disappears the moment a user starts typing, and many screen readers don't reliably announce it at all. Without a real label, a form field has no accessible name.

Automatically detected

axe-core reliably flags a form control with no programmatically associated label.

Related axe-core rules: label, select-name

Fails

<input type="text" placeholder="Company name">

No <label>, no aria-label — the placeholder is the only hint, and it vanishes as soon as the user types.

Passes

<label for="company">Company name</label>
<input type="text" id="company" placeholder="e.g. Acme Inc.">

A real <label> gives the field a persistent accessible name; the placeholder is now just a helpful example, not the only label.

Openwell finds violations like this one across your whole site, clusters them by the component that caused them, and generates a fix that's re-validated before you see it.

Scan your site free
WCAG 3.3.2 Labels or Instructions — what it requires and how to fix it — Openwell