为什么IE7添加tabindex=“;0”;到没有tabindex的元素
Why does IE7 add tabindex="0" to elements without tabindex?
我正在开发一个需要大量键盘导航的web应用程序。
我已经控制了选项卡键导航,并通过以下jQuery选择示例选择了所有元素:
elements = $("div").find("[tabindex]:visible").not("[tabindex='0'], :disabled");
因此,我不选择不可见的元素,即禁用或tabindex为0的元素。
这在Firefox、Chrome和IE8+中非常有效。遗憾的是,该项目需要IE7的支持。出于某种原因,IE7似乎将tabindex="0"添加到没有我们设置的tabindex的元素中,并且elements
在IE7事件中包含tabindex="0"的元素,尽管选择器不应该添加它们。
有人知道IE7为什么会这样做吗?如果有什么可以做的吗?
在最坏的情况下,elements
在除IE7之外的所有其他浏览器中都包含300多个元素,而IE7包含近800个元素,这会导致性能下降。
编辑:
我已经成功地编写了一个选择器,它不包括IE7中tabindex="0"的元素。
elements = $("div").find("[tabindex][tabindex!=0][tabindex!=-1]:visible:not(:disabled)");
HTML使用tabindex属性来控制选项卡顺序。因此,默认情况下会为所有元素添加tabindex,以使页面元素可以通过键盘访问。它也用于其他浏览器中的焦点伪类。
参考
- 18F:键盘访问-辅助功能指南
相关文章:
- CKEditor Widget-阻止编辑可编辑元素本身
- 如何设置html元素填充的动画
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 使用clickToggle并在单击另一个元素时关闭元素
- 单击时将焦点更改为元素
- 表追加而不附加最后一个元素
- 如何在jQuery中获取元素的形式
- 我可以获得相对于被点击元素的确切点击位置吗
- 在函数中添加数组元素的数值
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 将视口底部滚动到元素底部
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 如何使用jquery处理php循环通过元素
- 当在ng视图中加载新路由时,Tabbing(tabindex)针对错误的元素
- 如何使用tabindex-Javascript而不是jquery来查找元素
- 将tabindex设置为“;最后一个元素“;以及“;倒数第二元素“-可能的
- 为什么IE7添加tabindex=“;0”;到没有tabindex的元素
- 如何在tabindex移到最后一个元素后从1重复tabindex