【发布时间】:2016-06-26 19:55:13
【问题描述】:
我正在努力使导航键盘可访问,以便用户可以通过链接Tab。问题在于,一旦菜单项被聚焦或悬停,就会在菜单项旁边显示弹出窗口。这是一个最小的工作示例:
a.help {
/* don't show help until explicitly triggered */
display: none;
}
li:hover + a.help, a:focus + a.help {
/* show help button when user is about to interact with the original button */
display: inline;
}
a.help:focus, a.help:hover, a.help:active {
/* don't hide help button while user interacts with it */
display: inline;
}
<h3>Actions</h3>
<ul>
<li><a href="#">Edit</a> <a class="help" href="#">(Help)</a></li>
<li><a href="#">Delete</a> <a class="help" href="#">(Help)</a></li>
<li><a href="#">Back</a></li>
</ul>
在 Firefox 45 中,当焦点位于“编辑”并且其“(帮助)”可见时,下一个 Tab 将不会聚焦任何内容,但“(帮助)”会消失。下一个 Tab 将移至“删除”。
在 Chrome 49 中,情况更糟。当焦点位于“编辑”时,下一个 Tab 将不会聚焦任何内容,实际上在下一个 Tab 上的页面第一个链接处重新开始导航。
有什么方法可以在保留一般样式和文档结构的同时完成这项工作?
【问题讨论】:
标签: html css accessibility keyboard-navigation