WCAG 2.0建议在链接元素上也使用:focus
when:hover
来支持键盘导航。这适用于链接元素,但两者之间存在一些差异。
- 任何元素都可以具有
:hover
状态,而只有极少数元素可以聚焦 - 当悬停在一个元素上时,你也悬停在它的所有父元素上。这不是焦点的情况
这个问题完全是关于 css 的。有没有办法模拟:hover
(如上所述)键盘导航的行为?或者有什么强烈的理由不想要这样吗?
为了更清楚,这里有一个例子:
html:
<div id="box">
foo bar
<a href="#">click me</a>
</div>
CSS:
#box {
opacity: 0.3;
}
#box:hover {
opacity: 1;
}
#box a:focus {
opacity: 1;
}
使用鼠标时,我将在使用之前将鼠标悬停在链接元素上。由于:hover
状态向上传播#box
将是完全不透明的。
使用键盘时,我将在使用之前聚焦链接元素。由于:focus
状态不会向上传播#box
,因此不会完全不透明。