使用for与aria-describedby实现双向ARIA关联是否冗余?
输入框与标签双向关联写法的疑问解答
这种同时用<label for>和<input aria-describedby>关联同一个标签元素的写法属于冗余且不推荐,具体原因如下:
原生<label>关联已满足双向语义需求
HTML原生的<label for="id">与对应id的<input>已经建立了完整的双向关联:
- 交互层面:点击标签文本会自动聚焦到对应的输入框,提升操作便捷性
- 辅助技术层面:屏幕阅读器会自动将标签文本识别为输入框的关联标签,读取输入框时同步播报标签内容,无需额外ARIA属性补充
标准写法示例:
<label for="Foo">Hello</label> <input id="Foo" type="text" />
aria-describedby的正确用途是补充描述
aria-describedby的设计初衷是为输入框提供额外补充说明信息,而非重复关联已作为标签的元素。比如输入框需要规则提示时,才适合用它关联说明文本:
正确用法示例:
<label for="password">设置密码</label> <input id="password" type="password" aria-describedby="password-note" /> <p id="password-note">密码长度至少8位,包含大小写字母和数字</p>
若用aria-describedby关联已作为标签的元素,会导致屏幕阅读器重复读取同一文本,干扰用户获取信息,属于画蛇添足的写法。
内容的提问来源于stack exchange,提问作者lonix
相关产品推荐
相关产品推荐

