Start scanning free

( Perceivable / WCAG 1.3.1 )

Form input has no label

This check maps to Info and Relationships. Use the guidance below to confirm the issue, understand who it affects and ship a fix.

Critical Level A WCAG 1.3.1 — Info and Relationships

What’s wrong

A form input, select, or textarea has no associated label — no <label> element, no aria-label, and no aria-labelledby.

Why it matters

When a screen reader focuses on an input field, it announces the label so the user knows what to type. Without a label, the screen reader may announce nothing, the input type, or an unhelpful placeholder. Placeholder text is not a label — it disappears when the user starts typing and is not announced reliably by all screen readers.

How to fix it

Associate every input with a label. The most robust method is a <label> element with a matching for/id pair.

Before
<input type="email" placeholder="Email address">
<div>Email address</div>
<input type="email">
After
<!-- Method 1: for/id pair (most robust) -->
<label for="email">Email address</label>
<input type="email" id="email">

<!-- Method 2: wrapping label -->
<label>
  Email address
  <input type="email">
</label>

<!-- Method 3: aria-label -->
<input type="search" aria-label="Search products">

Placeholders can supplement labels but must never replace them.

Learn more