给当前导航菜单项添加tabindex="-1"是否是合规的无障碍开发实践?
结论
你这种给当前页导航链接添加tabindex="-1"的操作不属于通用无障碍优化手段,反而会对部分用户造成体验障碍,不建议使用。
具体原因
- 不符合键盘用户的操作预期:绝大多数键盘导航用户已经习惯了导航菜单的固定Tab遍历顺序,直接跳过当前页链接会让用户误以为漏读了菜单项,视障用户无法直观看到当前链接的高亮样式,更容易产生困惑。
- 和
aria-current="page"的语义作用重叠:你已经为当前链接添加了规范要求的aria-current="page"属性,主流屏幕阅读器都会在识别到该属性时主动播报“当前页面”的提示,用户完全可以感知到该链接对应当前访问的页面,不需要额外通过移除可聚焦性做限制。 - 会造成额外的操作障碍:部分用户可能存在选中当前导航链接复制URL的需求,
tabindex="-1"会导致键盘用户无法正常聚焦该链接,反而阻碍了正常操作。
更合理的优化方案
保留现有逻辑里的aria-current="page"设置即可,这是WAI-ARIA规范明确推荐的当前导航标识方案,已经能覆盖屏幕阅读器用户的使用需求。
额外可以给当前链接的CSS补充pointer-events: none属性,阻止鼠标点击的无效操作,不需要修改Tab聚焦逻辑。
另外补充一个代码小问题:你JS代码里用到的getAttribute("href", "/")写法不符合规范,getAttribute方法只接受1个参数,无法传入默认值,建议修改为linkCurrentItem.getAttribute("href") || "/"来实现你要的默认值效果。
内容的提问来源于stack exchange,提问作者Naj
相关产品推荐
相关产品推荐

