Form Label Checker

Find the fields a screen reader cannot name — labels, aria names, placeholder traps and broken for-targets, checked instantly in your browser.

What this tool gives you

label score
Paste form HTML
field map
Fix list

Check form HTML

Paste a form snippet. Analysis runs locally in your browser — nothing is sent anywhere.

<input>, <select>, <textarea> and <button> are analyzed. Hidden, submit and button-type inputs are skipped.

What this checker looks for

Every field needs a real label: a matching label[for], a wrapping label, or an aria name when no visible label fits.

Real labels

label[for], wrapping labels and button text win.

Aria fallbacks

aria-label and aria-labelledby name fields without visuals.

No placeholder-only

Placeholders vanish on focus and fail WCAG 1.3.1.

Clean targets

label[for] must point at real ids — no duplicates, no empties.

How to use the checker

Paste the form, then give every unlabeled field a real name.

1

Paste the markup

Any snippet works — inputs, selects, textareas and buttons.

2

Read the map

Explicit and aria labels count; placeholders and titles do not.

3

Label the gaps

One label[for] per field, unique ids, aria only when invisible.

What a labeled form needs

Every control gets a programmatic name — visible labels beat everything else.

SignalRequirementWhy it matters
Real labelsevery field labeledUnnamed fields are invisible to screen readers.
Visible labels80%+ named on screenTap targets and captions help every user, not just AT.
Placeholder trapszero placeholder-onlyPlaceholders vanish on focus and fail WCAG 1.3.1.
Label targetsfor matches a real idA broken for turns the label into dead markup.
Unique idsno duplicated idsJS and labels grab the first match — the rest go unheard.

Related GEO pages

Fix labels, then check contrast, alt text and heading structure.

Form label FAQs

Is a placeholder enough to label a field?

No. Placeholders vanish when users type, fail color contrast by default, and are ignored by many screen readers. Pair every field with a label element or an aria-label.

What is the difference between aria-label and label for?

A label[for] gives a visible name every user can see and tap. aria-label names a control for assistive tech only, so save it for icon buttons and compact toolbars.

Does this tool send my HTML anywhere?

No. The parser runs entirely in your browser. Paste the snippet, read the per-field map, and fix it in your own codebase.