AXE/ARC检测input组件时aria-required属性不允许错误的排查与解决
问题分析
你遇到的无障碍检测错误,核心原因是原生表单控件不应使用aria-required属性:
<input>作为原生表单元素,本身具备内置的表单语义,支持原生required属性来标记必填状态,不需要借助ARIA属性重复声明。- 无障碍工具判定
aria-required不允许用于generic role元素,本质是因为这类原生控件的语义已经明确,额外添加aria-required属于冗余且不符合规范的用法,尤其是你这里设置的aria-required="false"完全多余——控件默认就是非必填状态,画蛇添足的属性触发了检测报错。
解决方法
非必填场景(你的当前需求)
直接移除aria-required="false"属性即可,修改后的代码如下:
<input matinput="" width="875px" tabindex="0" id="zipcode-seach" formcontrolname="zipCode" class="mat-input" placeholder="Zip Code / Postal Code - enter full or partial value" aria-invalid="false">
若需设置为必填场景
不要使用aria-required="true",改用原生HTML的required属性,这样既符合表单规范,也能被无障碍工具正确识别:
<input matinput="" width="875px" tabindex="0" id="zipcode-seach" formcontrolname="zipCode" class="mat-input" placeholder="Zip Code / Postal Code - enter full or partial value" aria-invalid="false" required>
内容的提问来源于stack exchange,提问作者user2408987
相关产品推荐
相关产品推荐

