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.
安装方式
cp -r skills/aria-input-field-name ~/.claude/skills/aria-input-field-name把该 skill 目录放进客户端 skills 目录。不同客户端的目录可能不同,Claude Code 默认是 ~/.claude/skills/
/plugin marketplace add thedaviddias/Front-End-Checklist⚠️ 该命令形态随客户端版本变化,仅在检测到 .claude-plugin/marketplace.json 时展示;不可用时请用「目录复制」。
https://raw.githubusercontent.com/thedaviddias/Front-End-Checklist/e8d14d049010e2ce25afcd5e8609dfcbbe63e47e/skills/aria-input-field-name/SKILL.md下载后另存为 ~/.claude/skills/aria-input-field-name/SKILL.md。链接锁定采集时的 commit,内容与本站展示一致。
整仓一次性获取:git clone --depth 1 https://github.com/thedaviddias/Front-End-Checklist.git
依赖与权限
- 无需 API Key
- 需要联网访问外部服务
- 无外部命令依赖
- 以上为按正文与 frontmatter 自动推断的信号,仅供参考;安装前建议先阅读原文。
SKILL.md 正文
Ensure all input fields have accessible names
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.
Quick Reference
- Every
<input>,<textarea>, and<select>must have a programmatically associated accessible name - Preferred: associate a
<label>via matchingfor/idattributes - Alternatives:
aria-label(inline string) oraria-labelledby(references another element'sid) - Placeholder text is not an accessible name — it disappears on input and is not reliably announced
- Applies to WCAG 2.1 SC 1.3.1 (Info and Relationships) and SC 4.1.2 (Name, Role, Value)
Check
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.
Fix
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.
Explain
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.
Code Review
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
质量与来源
- 所属仓库
- thedaviddias/Front-End-Checklist
- 仓库星标
- 7.4 万
- 最近更新
- 6 天前
- 采集时间
- 今天
- commit
- e8d14d049010
- 内容指纹
- sha256:ee53c3a0b96baa4
- 文件路径
- skills/aria-input-field-name/SKILL.md