Accy

Form fields with no label

WCAG 1.3.1, 3.3.2, 4.1.2 (A) · EN 301 549 9.1.3.1, 9.3.3.2, 9.4.1.2

Some form fields have no accessible name: no <label>, no aria-label, no aria-labelledby.

Why it matters

An unlabelled field is announced as "edit text" and nothing more. In a search box that is annoying; in the shipping address at checkout it makes the purchase impossible to complete without guessing.

A confusing field at checkout is an abandoned basket. This is not only compliance, it is conversion.

How to fix it

Associate a <label> using the for attribute pointing at the field id, or wrap the field inside the label. A placeholder does not count: it disappears as soon as someone types, and many screen readers never announce it.

As it is
<input type="email" name="email">
As it should be
<label for="email">Email address</label>
<input type="email" id="email" name="email" autocomplete="email">

<!-- Or by wrapping -->
<label>Postcode
  <input type="text" name="postcode" autocomplete="postal-code">
</label>

On your platform

Related

Does your shop have this failure?

Check for free, along with the other 54 rules. No sign-up.

No sign-up. We scan one public page and store nothing about you.