ASG*_*ASG 4 html css safari anchor accessibility
我正在创建一个跳过链接,但锚标记没有在 Safari 中获得焦点(在 Chrome 中有效)。正如我在其他帖子中所读到的那样,我已启用所有辅助功能设置:
除了此处建议的 :focus 之外,我还尝试添加 :hover 伪类:Accessibility Skip Nav - Skip to Content (Issue in Safari)
即使进行了这些更改,浏览内容也不会使跳过链接出现在 Safari 中。它在 Chrome 中始终如一地工作。这里还有一个有问题的代码笔: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;
}
Run Code Online (Sandbox Code Playgroud)
<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>Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激。谢谢。
小智 5
有几件事正在发生。第一个是默认情况下,Safari 不使用标签导航。用户必须进入 Safari 的设置并选中该框以打开选项卡式导航。这很傻。
另一个问题是您的标记。Safari 不喜欢空链接。即使锚标记内有一个 div,Safari 也不会将其识别为有效链接,因此会忽略它。要更正此问题,您需要将标记简化为如下所示:
<a class="sr-only sr-only-focusable" href="#main">Skip to main content</a>
Run Code Online (Sandbox Code Playgroud)
此外,通过使用语义正确的标记,您的链接将不需要 tabindex。使用“tab”键导航时,当链接处于焦点时,将显示参数设置为“block”,使其可见。
祝你好运。
| 归档时间: |
|
| 查看次数: |
4862 次 |
| 最近记录: |