我一直在研究一个重大项目的可访问性问题。部分工作涉及将tabindex = 0添加到相当多的按钮和链接中,因为当用户通过页面选项卡时它们没有被关注。
我正在我当地的环境中建造这一切,它工作得很好。基本上,一旦我将tabindex = 0添加到元素,它将按逻辑顺序选中。逻辑顺序是它在页面源中的位置。因此,页面源中的第一个元素被标记为首先向下到最后一个元素(正如您所期望的那样)。
我已将此代码推送到测试网站。在这个网站上进行测试时,我遇到了一些截然不同当我第一次导航到某个页面并开始按Tab键时:
问题是我没时间为每个元素添加tabindex = 0。我认为它的全部意义只是将它添加到那些没有被关注的元素上。现在有些元素有tabindex = 0而有些元素没有它创建这个跳跃效果,它循环遍历页面两次,第一次得到tabindex = 0,第二次得到所有其他元素。这并不理想,也不会通过质量保证。
任何想法和可能导致这种变化的原因是什么?我使用Chrome测试了两个网站。唯一的区别是一个是在MAMP(我的本地环境)中运行,一个是在AWS上托管的服务器?我不知道服务器基础结构应该如何影响html行为。
由于IP,我无法显示任何HTML页面。我正在寻找更多的理论答案,说明为什么会发生这种情况以及tabindex = 0在不同环境中的行为。
更新:所以我看了一下测试网站和我的本地网站,显然在测试网站上它将tabindex ='112'注入它怀疑应该在标签焦点中的所有元素。所以它现在循环遍历我的tabindex = 0然后循环遍历所有生成的tabindex ='112'。这是一个Moodle网站,因此不确定导致注射的原因。