Skip to content

Accessibility

How to label form fields accessibly

A field with no label is announced as just “edit text”, so someone using a screen reader has no idea what to type. A placeholder does not count: it is not exposed as the field's name and it disappears the moment they start typing. This is the most-cited defect in web accessibility complaints.

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.

html code
<!-- 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