在基金会关于创建跳过链接的文档中,他们建议将tabindex="0"
添加到表示要跳过的主要内容的元素中。我有点搞不懂为什么他们会这么说。据我所见,这会导致一个额外的元素在通过文档选项卡时接收焦点,尽管实际上与该元素焦点无关。
可能是因为与不支持锚定到id
的旧浏览器兼容吗?或者还有别的原因?
更新:它很快就不应该再说上面的话了,但这是因为我改了在回应这里的答案:P
发布于 2017-07-04 09:28:19
您应该将tabindex
设置为-1值,这样元素才能以可编程的方式聚焦,但不能包含在选项卡顺序中(与0值相反)。
如果锚点的目标是一个不可聚焦的元素,那么窗口将滚动到这个元素,但是下一个按下tab
键的键将在跳过链接按钮之后聚焦下一个元素。
例如,根据可聚焦的定义查看W3C:
设置元素的tabindex焦点标志。
发布于 2017-07-04 07:20:14
它似乎是出于一个简单的原因,因为它能够快速地导航到页面中最重要的部分。当按下tab
时,将首先选择该元素,并且选择将从那里继续,而不是在DOM的顶部。
当用户单击内部链接或需要通过JS触发时,可以使用锚定id
。在大多数浏览器中已经内置了使用tabindex="0"
。
发布于 2017-07-04 08:14:07
通常,给主内容一个id
,跳过链接用来跳过用户对主要内容的关注。但是,这种直接的方法是在9中不工作。您需要使用javascript focus()
将焦点设置为主要内容。tabindex=0
被用来制作一个本质上无法接收焦点、可聚焦的元素。
https://stackoverflow.com/questions/44909339
复制相似问题