悬停状态下的选项卡可访问性 [英] Tab accessibility within a hover state
问题描述
我有一个组件,它在悬停时会显示一个按钮和一个链接,您可以点击它.这不是菜单……只是页面中间的一个框.
对于可访问性,我希望用户能够使用 Tab 键进入容器(现在发生,并在 .HiddenUntilHover
类中显示内容)并且还可以继续 Tab 键到按钮和链接显示在悬停/聚焦状态.
现在您可以专注于容器并查看悬停状态;但是,当您使用 Tab 键时,它只会转到下一个元素,并且不允许您在悬停状态下使用 Tab 键切换到按钮或链接.
伪代码示例:
/* 我的组件 .jsx */<div tabIndex="0" className="MainContainer"><div className="SomeOtherClass"><div className="HiddenUntilHover">/* 我希望能够点击这些可点击的东西!*/<button>点击我!</button><a href="...">我也可以点击</a>
还有我的 SCSS:
.HiddenUntilHover {显示:无;}主容器:焦点,主容器:悬停,>.HiddenUntilHover {显示:块}
几天前我遇到了这个问题,我使用 css 类解决了它,使悬停的内容可以通过键盘导航访问.
我的工作方式是使用 css 伪类来确保 div
元素何时处于活动状态&重点是里面的按钮也显示.特别是额外使用 :focus-within
&:focus-visible
应该确保当你在列表项上使用 Tab 键时,它们的内容也会显示出来并且可以通过键盘访问.
.MainContainer {&:not(:hover, :focus, :active, :focus-visible, :focus-within) {.HiddenUntilHover {可见性:隐藏;}}}
<div tabIndex="0";className=MainContainer">内容<div className=SomeOtherClass"><div className="HiddenUntilHover"><button>点击我!</button><a href="...">我也可以点击</a>