How to label form fields
Every input needs a label so screen readers announce what it is for. Placeholders are not labels.
Step by step, with screenshots: Accessibility checker results — fixing the ten findings we see most →
Check your own site
Runs this check and the other 186, free, in about 45 seconds.
What a passing site looks like
- Every form field has a labelfail · −5 ptseffort S
Form field labels
Why it matters. Without a label a screen reader announces only "edit text", so visitors cannot tell the email field from the search box. Labels also make the tap target bigger on phones.
- Give every input, select and textarea a <label for="…"> that matches its id, or wrap the field in the label.
- Where a visible label does not fit the design, add aria-label="…" to the field; a placeholder is not a label.