具有 href 属性的 Safari 锚标签没有获得焦点?

Safari anchor tags with href attribute not getting focus?

我遇到了这个问题,我认为我的代码是错误的,但在搜索并查看相关示例后,我想知道 Safari 是否真的不关注 <a> 标签和 href属性?

在我的用例中,我想使用 <a href="#top">jump</a> 跳转到页面部分。为了使锚标签可聚焦,我们需要像这样添加 tabindex="0" -> <a href="#top" tabindex="0">jump</a>。但是,href 属性的存在似乎不适用于 Safari。请参阅此 fiddle 并尝试使用 Tab 键浏览页面(从其他 SO 示例修改而来)。

HTML

<a tabindex="0">Test 1</a>
<a href="#" tabindex="0">Test 2</a>

CSS

a:focus { color: orange; }

有什么办法可以解决这个问题吗?相同的代码在 Chrome 中运行良好。

看来此行为是设计使然,因此作为 web-developer 的您对此无能为力。最终,这取决于 end-user 他们是否要启用这些设置。

我可以告诉您,屏幕 reader 用户经常使用 Safari,尤其是 iOS。您可以在最新的 WebAIM Screen Reader User Survey 中看到这方面的证据。这些人似乎可以毫无问题地掌握这项技术,所以我怀疑这不是真正的问题。

技术经常变化,所以您能做的最好的事情就是按照规范进行编码,并尽可能为较差的可访问性支持提供优雅的回退。不幸的是,在这种情况下我看不到任何方法。

我不建议尝试实施解决方法(通过脚本),因为这可能只会导致更多问题。