Level AUnderstandable
3.3.2

Labels or Instructions

Every form field needs a clear, persistent label (and any needed instructions), not just placeholder text that vanishes.

In plain English

A form field with no label is a blank box: people have to guess what goes in it. The most common shortcut, using the placeholder as the label, breaks as soon as you type, because the placeholder vanishes and takes the reminder with it. And a screen reader may announce nothing at all.

This rule is simple: give every field a real, visible label, and add instructions where the input needs a particular format or is required.

Who this is for

  • Screen-reader users, who hear the label to know what a field is for.
  • People with memory or attention differences, who need the label to stay put while they type.
  • Everyone, especially at checkout, where a mislabeled field causes errors.

What “good” looks like

A real label tied to the field, plus instructions when needed.

<!-- Good -->
<label for="zip">ZIP code</label>
<input id="zip" name="zip" autocomplete="postal-code">

<!-- Bad: placeholder used as the only label -->
<input name="zip" placeholder="ZIP code">

Where stores get it wrong

Checkout and newsletter fields labeled only by placeholder text, search boxes with no label at all, and required fields marked with a red asterisk but no text. These are among the most common findings in a self-check and on the common failures list.

How to meet it

Techniques the W3C accepts as sufficient (summarized). Follow a link for the full method.

Common mistakes

Patterns the W3C lists as failures of this criterion. Avoid these.

Frequently asked questions

What does labels or instructions require?+

Success Criterion 3.3.2 (Level A) says that when a form asks for input, labels or instructions must be provided so people know what to enter. Every field needs a clear, programmatically associated label.

Why is placeholder text not a proper label?+

Placeholder text disappears the moment you start typing, so people lose the reminder of what the field is for. It is also often too low-contrast, and screen readers do not treat it as a reliable label. Use a real, visible <label> instead.

How do I label a field correctly?+

Use a <label> element with a for attribute matching the input's id, or wrap the input in the label. For required fields and special formats, add a short text instruction (for example 'Date, as MM/YYYY').

Reference

This is a plain-language explainer. The authoritative source is the W3C Web Content Accessibility Guidelines (WCAG) 2.2.

WCAG 2.2 © W3C. Excerpts are paraphrased; see the linked documents for the normative text.

Not sure if your store passes 3.3.2?

A human auditor checks this and every other criterion against your live store, and documents the result.

Book an audit