Form field labels
A field with no associated <label> is announced by a screen reader as unlabeled, placeholder text and all. The for/id fix, in one line.
What it is
This checks that every form field has an associated label — a <label> with a for attribute matching the field's id, or the input nested inside the label — read from Lighthouse's rendered-DOM audit rather than the raw HTML, so it catches labels missing at render time as well as in markup.
Placeholder text inside the input does not satisfy this: a placeholder disappears the moment someone starts typing and isn't reliably read by assistive technology the way a label is.
Why it matters
A screen reader announces a form field by its label; without one, a field is announced as an unlabeled 'edit text' with no indication of what it's asking for — for someone who can't see the placeholder text sitting inside the field, the form becomes a guessing game.
It's also one of the more consequential accessibility failures in practice, because forms tend to gate the actions that matter most on a site — checkout, sign-up, contact — so an unlabeled field doesn't just annoy a visitor, it can block them from completing the one thing the page exists for.
How to fix it
with a reference doc<label for="email">Email</label>
<input id="email" type="email" name="email">Related checks
3This is one of the 75 checks the scanner runs. See what we check for the full list, every severity weight, and how the score is computed from them.