我正在创建一个跳过链接,但定位标记未在Safari中聚焦(在Chrome中工作)。我已经启用了所有辅助功能设置,就像我在其他帖子中读到的一样:
我还尝试过添加:hover伪类,除了此处建议的:focus之外:Accessibility Skip Nav - Skip to Content (Issue in Safari)
即使在进行了这些更改之后,在内容上进行漫游也不会使跳过链接出现在Safari中。它在Chrome浏览器中始终运行。这也是一个有问题的codepen: https://codepen.io/a-gheorghe-the-vuer/pen/vVJmZw
.card {
background-color: yellow;
left: -1000px;
top: -1000px;
height: 1px;
width: 1px;
overflow: hidden;
position: absolute;
border: .1rem solid red;
border-radius: .4rem;
box-shadow: 0 .2rem 1rem 0 black;
padding: 3.6rem;
}
.anchor-skip:focus .card {
left: 0;
top: 0;
background-color: yellow;
height: 20px;
width: 100px;
border: .1rem solid red;
border-radius: .4rem;
box-shadow: 0 .2rem 1rem 0 black;
padding: 3.6rem;
display: block;
}
.anchor-skip:hover .card {
left: 0;
top: 0;
background-color: yellow;
height: 20px;
width: 100px;
border: .1rem solid red;
border-radius: .4rem;
box-shadow: 0 .2rem 1rem 0 black;
padding: 3.6rem;
display: block;
}
.anchor-skip:active .card {
left: 0;
top: 0;
background-color: yellow;
height: 20px;
width: 100px;
border: .1rem solid red;
border-radius: .4rem;
box-shadow: 0 .2rem 1rem 0 black;
padding: 3.6rem;
display: block;
}
.button {
z-index: 1
}
.check {
height: 30px;
width: 100px;
border: 1px solid black;
}
<a
class="anchor-skip"
tabindex="0"
href="#main"
>
<div class="card" tabindex="-1">
<div class="button">
<span> Skip to main content</span>
</div>
</div>
</a>
<div> hi </div><div> hi </div><div> hi </div><div> hi </div>
<div> hi </div><div> hi </div><div> hi </div><div> hi </div> <div> hi </div><div> hi </div><div> hi </div><div> hi </div> <div> hi </div><div> hi </div><div> hi </div><div> hi </div> <div> hi </div><div> hi </div><div> hi </div><div> hi </div>
<div> hi </div><div> hi </div><div> hi </div><div> hi </div>
<div> hi </div><div> hi </div><div> hi </div><div> hi </div> <div> hi </div><div> hi </div><div> hi </div><div> hi </div> <div> hi </div><div> hi </div><div> hi </div><div> hi </div> <div> hi </div><div> hi </div><div> hi </div><div> hi </div>
<div id="main" class="check"> hello </div>
<div>
任何帮助将不胜感激。谢谢。
答案 0 :(得分:1)
发生了一些事情。第一个是默认情况下,Safari不使用标签导航。用户必须进入Safari的设置并选中该框以打开选项卡式导航。太蠢了。
另一个问题是您的标记。 Safari不喜欢空链接。即使您在anchor标签中有一个div,Safari也无法将其识别为有效链接,因此将其忽略。要解决此问题,您需要将标记简化为以下内容:
<a class="sr-only sr-only-focusable" href="#main">Skip to main content</a>
此外,通过使用语义正确的标记,您的链接将不需要tabindex。使用“ Tab”键进行导航时,当链接处于焦点时,请将显示参数设置为“阻止”以使其可见。
祝你好运。
答案 1 :(得分:0)
对于跳至主要内容链接: