Start scanning free

( Perceivable / WCAG 1.3.1 )

Input only uses placeholder as its label

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

Serious Level A WCAG 1.3.1 — Info and Relationships

What’s wrong

A form input has a placeholder attribute but no <label>, aria-label, or aria-labelledby.

Why it matters

Placeholder text disappears the moment a user starts typing. For people with cognitive disabilities or short-term memory issues, this means they forget what the field is asking for mid-entry. Screen readers handle placeholders inconsistently — some announce them, some don’t.

How to fix it

Add a persistent visible label. Keep the placeholder as a supplementary hint if you like, but it cannot be the only label.

Before
<input type="text" placeholder="Full name">
<input type="email" placeholder="Email address">
After
<div class="field">
  <label for="name">Full name</label>
  <input type="text" id="name" placeholder="e.g. Sarah Johnson">
</div>
<div class="field">
  <label for="email">Email address</label>
  <input type="email" id="email" placeholder="e.g. sarah@example.com">
</div>

Learn more