在Foundation's docs on creating skip links中,他们建议将tabindex="0"
添加到代表要跳过的主要内容的元素中。我为什么会这么说有点困惑。据我所知,这会导致额外的元素在标记文档时获得焦点,即使与该元素没有任何关系也是如此。
是否可能与不支持锚定到id
的旧浏览器兼容?或者还有其他原因吗?
更新:它应该很快就不再说上述内容了,但那是因为I changed it回答了这里的答案:P
答案 0 :(得分:2)
您应该将tabindex
设置为-1值,以便元素可以通过编程方式进行聚焦,但不能包含在Tab键顺序中(与0值相反)。
如果你的锚点目标是一个不可聚焦的元素,那么窗口将滚动到这个元素,但是下一次按下tab
键将在跳过链接按钮之后聚焦下一个元素。
例如,参见W3C的definition of focusable:
设置了元素的tabindex焦点标志。
答案 1 :(得分:1)
似乎很简单的原因是能够快速导航到页面最重要的部分。按tab
时将首先选择此元素,选择将从那里继续而不是在DOM的顶部。
使用锚点id
用于在用户单击内部链接时使用,或者需要通过JS触发。大多数浏览器都已使用tabindex="0"
。
答案 2 :(得分:0)
通常主要内容会被赋予id
,跳过链接会将其用于将用户的注意力转移到主要内容上。但是,这种直截了当的方法doesn't work in Internet Explorer 9。您需要使用javascript focus()
将焦点设置为主要内容。 tabindex=0
用于制作一个本身不具备焦点,可聚焦的元素。