Skip to main content
All rules

A11Y-003

Form fields have no label

MediumDefault severity · Accessibility · Accessibility (WCAG 2.2 AA)

Last reviewed

What it checks

Visible inputs, selects and textareas with no accessible name: no <label>, aria-label, aria-labelledby, title or placeholder (axe-core accepts a placeholder as a last resort). Hidden spam-trap fields are ignored.

Why it matters

Screen-reader and voice-control users cannot tell what to type, and the field disappears from view once filled.

Recommended fix

Give every field a visible <label for="…"> (or an aria-label when a visible label is impossible).

How to verify

Click each label and confirm it focuses its field; check fields are announced correctly with a screen reader.

Example fix prompt

Generic prompt (your report adds the evidence)
Please fix this production issue in my app.

Issue A11Y-003: Form fields have no label
Site: https://your-app.example

First confirm the issue in the code or live config. If it is not present, say so and change nothing.
Task: Add an accessible label to each form field listed in the evidence: a visible <label> connected with for/id where the design allows, otherwise an aria-label describing the field. Keep the existing placeholders and styling.

Constraints: make the smallest change that fixes this, keep the current design and behaviour, never paste secret values into code or chat, and tell me which files you changed.
Done when: Click each label and confirm it focuses its field; check fields are announced correctly with a screen reader.

References