在旋转木马的第1001个实现中,我想"正确地";处理焦点
关于此组件的UI/UX的几个快速问题:
- 如果使用TAB键,箭头和页面导航可以接受焦点。在单击事件后,我应该将焦点放在箭头按钮上吗?是否有可能做到不调用
element.focus()
方法-像纯HTML/CSS解决方案? - 页面导航区域应该处理箭头键的输入-同样的问题:一旦页面导航按钮被按下,我应该保持焦点吗?用
element.focus()
是否可行?这个组件的ARIA角色应该是什么? - 的设计需要4px高度的导航按钮-真的很难点击移动设备。为了使它们可用,添加了一个div作为导航按钮的子按钮,因此单击区域的高度扩展为+20px。有没有更好的办法来扩大"热区"?
- 我怎样才能排除额外的div,以免影响焦点矩形的面积
关于对焦,您问是否可以在不使用focus()
的情况下将焦点保持在按钮上。绝对的。事实上,当你点击一个按钮时,焦点不会移动,除非你特别移动它,或者你点击的元素被隐藏了。因此,如果你希望将焦点留在按钮上,那么你就不必做任何事情。
这是首选行为-将焦点留在按钮上。如果我正在浏览旋转幻灯片,而我是一个键盘用户,我会导航到"下一个"。按键,输入。我将检查幻灯片,如果不是我想要的,我将再次按输入(假设我的焦点仍然在"下一个"上)。按钮)查看下一张幻灯片。如果你强迫焦点从按钮移到轮播内容上,那么我就必须导航回"下一个"。按钮,然后我才能看下一张幻灯片。要一直导航到我刚刚选择的元素是很烦人的。
我不明白你的第三或第四个问题。
你看过W3.org关于旋转木马的两个参考文献吗?
- https://www.w3.org/TR/wai-aria-practices/旋转木马
- https://www.w3.org/WAI/tutorials/carousels/