Form Label Checker

Find form fields with no label, and placeholders being used as one.

A page with a form on it — contact, sign-up, checkout.

20 runs left today · sign up for more

About this tool

Checks every form control on a page for an accessible name — a `<label for>`, a wrapping label, an `aria-label`, or an `aria-labelledby`.

A field with none of those is announced by a screen reader as "edit text" and nothing else. There is no way to know what it wants. It also breaks the ordinary convenience everyone relies on without noticing: clicking a label to focus its input.

Placeholder text is the usual substitute and is not a label. It disappears the moment someone types, taking the only description of the field with it — which is worst precisely when someone is checking their work before submitting.

Common questions

Is a placeholder good enough?

No. It vanishes as soon as someone types, so the field loses its description exactly when they are reviewing what they entered. It also usually fails contrast requirements, being deliberately faint.

Does aria-label count?

Yes, it gives the control an accessible name. But a visible label is better: it helps everyone, not only screen reader users, and it gives you the click-to-focus behaviour that aria-label does not.

What about a search box with only an icon?

It needs a name too. Either a visually hidden label or an aria-label — visually hidden text is still read out, so you keep the clean design and the field stays usable.

Do hidden and submit inputs need labels?

No, and this tool ignores them. A hidden input is not a control anyone interacts with, and a submit button takes its name from its value or its text.