Skip to content
DevMarDe
Crawl Audit check 179Crawl AuditAccessibility

Labels on form fields: Crawl Audit check 179

Crawl Audit check 179 makes sure every form field has a label. Why placeholders don't count, the right markup, and how half of top sites get it wrong.

Zain Kazmi2 min read
On this page
Check
179 of 200
Module
Content Quality & Accessibility
Group
Accessibility (a11y) & WCAG Compliance
Impact
Medium

Short answer: every form field needs a label that's tied to it in the code, so a screen reader can say "Email, edit text" instead of just "edit text". Grey placeholder text inside the box doesn't count. Check 179 fails when fields have no label.

What Crawl Audit checks

  • Full audit: it reads Lighthouse's "Form elements have associated labels" audit.
  • Free check: every input, select and textarea needs a <label for> matching its id, a wrapping <label>, or an aria-label. Hidden inputs and buttons are skipped.

The free check is stricter than it should be. It doesn't accept aria-labelledby, and it counts hidden spam-trap fields that screen readers never see. If it flags a field you can't find, that's probably why.

What the sources say

  • W3C: "Whenever possible, use the label element to associate text with form elements explicitly." And: "The for attribute of the label must exactly match the id of the form control."
  • W3C: "Assistive technologies, such as screen readers, do not treat placeholder text as labels."
  • WebAIM's 2026 survey found missing form labels on 51% of top home pages.

The markup

<label for="email">Work email</label>
<input id="email" type="email" autocomplete="email">

<label>Name <input name="name" autocomplete="name"></label>

A visible label also helps everyone else: it stays on screen while people type, unlike a placeholder.

On devmarde.com

Every visible field in our contact form has a label, and Lighthouse's label audit passed on 6 October. The free check flags one field: a hidden spam trap that is marked aria-hidden and can't be reached by keyboard. We've asked for the free check to skip fields like that.

Sources

All 200 Crawl Audit checks

See how your site does on every check.

Crawl Audit runs this check and 199 others on your domain. The full report is $7.89, one time. The free check on this site covers 25.