当涉及到标签焦点这样的事情时,我相当无知。我正在使用JQuery Datatables。
在一个窗口中,点击标签滚动浏览元素,不包括表格行,但包括带有“first,previous,next,last”分页按钮的表格页脚。
在另一个窗口中,标签焦点停在表格行的末尾并返回到页面顶部,跳过“第一页,上一页,下一页,最后一页”的分页按钮。
我编写了这两个数据表,它们非常相似,就像弹出窗口本身一样。我不认为这是一个大问题,但我的开发团队中有人为它开了一个bug,因为这是我的代码我想修复它(我不知道为什么有人会浪费时间测试这样的事情,我确信我们的客户使用光标点击分页按钮,我怀疑他们中的许多人甚至意识到反复点击标签会将它们带到那里。)
我的问题是,是什么决定哪些元素可以获得标签焦点?为什么两个非常相似的代码片段表现得如此不同?如何使它们保持一致(允许所有元素获得标签焦点,或者至少是分页按钮)?
答案 0 :(得分:1)
我能想到的主要原因是:
input
,button
和a
(锚)元素是“可标记的”,除非它们具有tabindex="-1"
属性,这是非 - 标准但大多数浏览器都提供支持。它用于禁用标签。如果值为-1
,请从按钮中删除该属性。同时确保没有JS将元素“tabIndex
设置为-1
。
除了具有tabindex
(例如tabindex="0"
)的默认可标记元素之外的元素也可以显示。
不太可能,但要确保没有onfocus
属性或focus
处理程序将焦点重定向到其他附加到按钮的位置。 tab
密钥也可以捕获,但这种可能性很小。
以下是demo说明以上内容。