如何确保通过ajax加载的表上的逻辑Tab键顺序

时间:2014-07-12 19:18:53

标签: javascript accessibility

所以我在可访问性方面存在这个问题,我们需要一个表的数据可以按行聚焦。为实现这一目标,我们的第一直觉就是在<tr>上设置一个tabindex。起初,这似乎工作得很好。不幸的是,数据通过ajax加载到表中,这会导致问题,因为数据不知道已经在页面上设置了tabindex。例如,让我们说页面索引如下所示:

1 2 3 [???实时数据??? ] 4 5 6

加载表的数据后,索引最终看起来像这样:

1 2 3 [1 2 3 4] 4 5 6

现在,当用户尝试选中时,第一个索引位于页面顶部,第二个索引位于实时区域内,第三个索引位于页面顶部,第四个位于页面顶部生活区域等等。基本上,它按顺序索引所有1,然后是2s等。

如果表格数据加载后,如何确保表格数据的列表顺序正确?

到目前为止,我的第一个想法是编写一个脚本,它基本上用tabindex抓取所有内容,然后重置顺序以包含新的索引元素。这种方法有效,但前提是选项卡索引与DOM顺序一致(默认/自然)。

对此有何想法/解决方案?

更新: 我只是尝试将所有行索引设置为0,希望它只是使其可聚焦并将其插入到&#34;自然流&#34; tabindexes。这有点奇怪。是正确的做法吗?

1 个答案:

答案 0 :(得分:2)

作为最佳做法,依赖于自然标签顺序,并且不以这种方式使用tabindex 。尝试手动设置和管理标签顺序将是一场噩梦 - 绝对是一种反模式。

屏幕阅读器已经提供了表格导航工具,允许用户按行和按单元进行导航,因此无需以这种方式使TR成为焦点。

表导航命令: