Install any skill in seconds. Free to start, no credit card required.
Get Started Free →thedaviddias/aria-input-field-name
Use when applies to all `<input>` (except type=hidden), `<textarea>`, `<select>`, and custom form widgets using role=textbox, role=combobox, role=spinbutton, role=searchbox, or role=listbox.
Passed 22 of 23 test cases with the skill, and 20 of 23 without it.
2 fixed20 passed either way1 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
This benchmark measured an earlier version of the skill.
One of 2 test cases the skill fixed. Same model, same prompt, with and without the skill.
Our designer wants a minimalist login form where the input fields only use placeholder text (e.g., 'Username') to save space, with no other labels. Is this acceptable for accessibility? Explain why and provide the recommended fix.
| Checked | Without skill | With skill |
|---|---|---|
| States that placeholder text is not an accessible name | Missed | Passed |
| Notes that placeholders disappear on input | Passed | Passed |
| Recommends adding a label or aria-label | Passed | Passed |
The instructions your model reads when the skill loads.
Screen readers announce the accessible name of a focused input before the user types. Without a name, VoiceOver reads 'text field' and NVDA reads 'edit' with no context, making it impossible for blind users to fill out forms correctly. Voice control users (Dragon NaturallySpeaking) also need the visible label text to match the accessible name so they can say 'click Email Address' to move focus to the field.
<input>, <textarea>, and <select> must have a programmatically associated accessible name<label> via matching for/id attributesaria-label (inline string) or aria-labelledby (references another element's id)Find all <input> (excluding type='hidden'), <textarea>, and <select> elements. For each, check that one of these is true: (1) a <label> element with a for attribute matching the input's id exists, (2) the input has a non-empty aria-label attribute, or (3) the input has an aria-labelledby attribute pointing to a visible element. Flag any that use only placeholder as their label. Also check custom widgets using role=textbox, role=combobox, etc.
For each unlabeled input: (1) Add a <label for='input-id'>Label text</label> and matching id on the input — this is the most robust method. (2) If a visible label is impractical (e.g., search bar), add aria-label='Search' directly on the input. (3) If the label text already exists elsewhere in the DOM, add aria-labelledby='label-element-id' to the input. Remove placeholder as a substitute for a label; keep placeholder only as a hint for expected format.
WCAG 2.1 SC 4.1.2 (Name, Role, Value) requires that all user interface components have an accessible name. For form inputs, the accessible name is computed from: (1) aria-labelledby → (2) aria-label → (3) associated <label> → (4) title attribute (last resort). Screen readers announce this name when the input receives focus. Without it, a blind user hears only the input type ('text field') with no indication of what to type. Dragon NaturallySpeaking users need the accessible name to match visible text so voice commands work.
Review the rendered markup and interactive states that affect Ensure all input fields have accessible names. Flag exact elements, roles, labels, focus behavior, or keyboard interactions that violate the rule, and note how to verify the fix with browser accessibility tooling or assistive tech.
For full implementation details, code examples, and framework-specific guidance,
see references/rule.md.
Rule page: https://frontendchecklist.io/rules/accessibility/aria-input-field-name
test cases passed, vs 20 / 23 without
Published skills whose descriptions closely match this one, with their headline benchmark lift.
More skills from the same source and nearby in the registry, with their headline benchmark lift.