javascript - 辅助功能:为什么 Jquery 菜单显式将菜单项 tabindex 设置为 -1?

标签 javascript jquery jquery-ui accessibility

我想知道是否有人可以从可访问性的 Angular 向我解释一下,显式为菜单项 anchor 提供 -1 的选项卡索引背后的逻辑。我想给我的菜单项一个选项卡索引 0,因为它们的自然顺序就是我想要的顺序。这种策略有什么缺点吗?

最佳答案

tabindex="-1" 将其打乱顺序,BUT 允许通过脚本将键盘焦点移动到那里。

jQuery 菜单是 WAI-ARIA menu widget 的一个示例其中有 specified keyboard interaction .

简单地说,菜单应该是按 Tab 键顺序的一个制表位,然后您可以使用箭头键来导航菜单。这就是为什么 -1 是一个有用的值,您可以使用箭头键编写键盘焦点移动的脚本。使用 0 会破坏交互模型,因此如果您想以这种方式更改它,我不会使用 jQuery 菜单。

我在可用性测试中发现很少有人知道这种交互(即他们被卡住了),至少对于大多数满足于一个 WAI-ARIA 小部件的“标准”网站来说是这样。对于 Gmail 之类的东西来说,情况有所不同,人们(可能)期望获得更像应用程序的体验。

如果您正在寻找网站导航意义上的菜单,我会推荐 Adobe OS mega-menu ,它使用标准脚本和一些 ARIA 属性的组合来为常规网站提供出色的体验。

关于javascript - 辅助功能:为什么 Jquery 菜单显式将菜单项 tabindex 设置为 -1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20364840/

相关文章:

javascript - Jquery 空闲计时器事件未触发

Jquery 动画圆形导航

javascript - 判断一个字符串是否由特定的字符集组成

javascript - Accordion 从 localStorage 变量中设置为事件状态

css - 在位置为 :fixed 的 div 中使用输入字段时,JqueryUi 自动完成显示在错误的位置

javascript - 如何在不影响所有键的情况下在 jquery 中使用 keydown 事件?

javascript - 为什么我的 if 条件里面的表达式不起作用?

javascript - window.location.hash 不起作用?

javascript - 可排序 - 更新现有数组 - jQuery

javascript - 没有 jQuery 的动画 javascript 吗?