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
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.
Paste the markup
Any snippet works — inputs, selects, textareas and buttons.
Read the map
Explicit and aria labels count; placeholders and titles do not.
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.
| Signal | Requirement | Why it matters |
|---|---|---|
| Real labels | every field labeled | Unnamed fields are invisible to screen readers. |
| Visible labels | 80%+ named on screen | Tap targets and captions help every user, not just AT. |
| Placeholder traps | zero placeholder-only | Placeholders vanish on focus and fail WCAG 1.3.1. |
| Label targets | for matches a real id | A broken for turns the label into dead markup. |
| Unique ids | no duplicated ids | JS 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.