Accessibility
How to label form fields accessibly
What 13x checks
This is rule accessibility.form-labels in the public registry: Form fields have labels. It runs on every audit, against the pages we actually fetched, and its result is derived from the response rather than estimated.
- Surface
- Accessibility
- Score weight
- 9 of the readiness score
- Scope
- Reported as skipped when the page renders only with JavaScript
- Applies
- To every site
Registry version 2026-07-30. Every rule is published, and the audit is deterministic — the same page produces the same finding every time.
The fix
The same text the audit hands you when this check fails on your own site.
form fields have no label.
<!-- Visible label, explicitly associated -->
<label for="email">Email address</label>
<input id="email" name="email" type="email" />
<!-- Visually hidden label, when the design has no room for one -->
<label for="search" class="sr-only">Search</label>
<input id="search" type="search" placeholder="Search…" />A placeholder is not a label: it is not reliably exposed as the field's accessible name, and it disappears as soon as someone starts typing — so anyone interrupted mid-form loses the only clue about what they were entering.
aria-label="Email address" works when there is genuinely no visible text to associate.
This is the single most-cited defect in web accessibility complaints, largely because it is the easiest for an automated scan to find.
Does your site have this problem?
13x checks this and 112 others against your live URL in about 30 seconds. No account, and every finding comes with the fix for your framework.
No signup. Results in 30 seconds.
More accessibility checks
- How to write alt text for imagesImages have alt attributes
- Why my icon buttons have no accessible nameLinks and buttons have accessible names
- How to stop disabling pinch zoomPinch-zoom is not disabled
- Why my site needs a viewport meta tagViewport meta tag is present
- Do I need an accessibility statementAccessibility statement is published
- How to add a skip to content linkA skip link bypasses the navigation