Safari无障碍问题:a链接设置tabIndex无效,开启相关设置后仍被忽略
可行解决方案
- 直接给
<a>标签自身显式设置tabindex="0",不要给内部子元素设置,即可规避按两次Tab才能选中的问题。Safari对部分可交互元素的默认焦点识别规则和其他浏览器存在差异,显式声明可聚焦属性可以对齐多浏览器表现。 - 显式配置
<a>标签的焦点样式,Safari默认会隐藏部分场景下的焦点环,可添加以下CSS规则强制显示:
a:focus, a:focus-visible { outline: 2px solid #007AFF; /* 可替换为项目适配的高亮色 */ outline-offset: 2px; -webkit-appearance: none; }
- 如果
<a>内部包含SVG等元素,给内部元素添加pointer-events: none属性,避免内部元素拦截焦点事件,保证外层<a>可以正常接收焦点并显示对应样式。 - 排查全局CSS重置规则,确认没有类似
*:focus { outline: none }这类全局禁用焦点样式的声明,这类规则在Safari下会完全覆盖默认焦点显示逻辑。
内容的提问来源于stack exchange,提问作者alexfrize
相关产品推荐
相关产品推荐

