键盘可访问的网络下拉菜单?

时间:2010-10-15 19:35:45

标签: javascript jquery html css

有没有办法在网站上构建键盘可访问的下拉菜单?我们当前的Web应用程序具有标准的悬停菜单,但这确实减慢了我们的数据录入员(他们习惯于桌面应用程序,其中有键盘可访问的菜单,不需要使用鼠标)。

我们想出了如何使用键盘快捷键显示菜单,但我不知道如何选择其中一个条目(例如使用菜单条目的第一个字母,就像在大多数桌面应用程序中一样)。

修改 - 指向执行此操作的网站或其他类型示例的链接非常有帮助

7 个答案:

答案 0 :(得分:7)

您可以将accesskey属性用于锚标记:

<a href="something.html" accesskey="s">[S]omething</a>

但使用它的键盘快捷键在所有浏览器中都有所不同:

  • IE :Alt + accesskey ,输入
  • FireFox :Alt + Shift + accesskey
  • Opera :Shift + Esc + accesskey
  • Chrome :Alt + accesskey

答案 1 :(得分:1)

最简单的方法是在菜单链接中添加accesskeys。它是专为此功能而设计的功能。

答案 2 :(得分:1)

尝试使用此菜单脚本,我为明尼苏达州的州门户网站创建了一个脚本。它是键盘可访问的(用于浏览所有级别的Tab键),显示您正在遍历的路径结构,并且最多支持五个级别(包括顶级)。

Top Menu: keyboard-accessible jquery menu

目前仅限于顶级横向风格导航,但未来版本将使其可以扩展为垂直或水平方向的菜单。

它还具有有限的触控支持(iPhone / iPad有点小问题),但我正在努力获得更广泛的支持。

答案 3 :(得分:0)

您需要在菜单打开时聆听按键,让您的代码移动所选位置。

8 =退格,13 =返回,27 = esc,40 =向下,38 =向上等。这些只是按键的ASCII值。

答案 4 :(得分:0)

关键事件:
http://api.jquery.com/keypress/
http://api.jquery.com/keydown/
http://api.jquery.com/keyup/

CSS菜单,可访问的标签:
http://carroll.org.uk/sandbox/suckerfish/bones2.html

后者使用:focus伪元素。我用文章中描述的方法遇到了一些警告,但它确实有效。

前者(集)是不言自明的。

答案 5 :(得分:0)

@ dev-null-dweller给出的公认的accesskey答案对于生产力和普通键盘用户来说似乎还可以。

但是,如果您真正关心的是可访问性,也就是说,使您的应用程序尽可能具有包容性,至少您需要实现:

语音用户将可以关闭单键快捷键,从而避免一次意外触发它们。这样,语音用户就可以充分利用为键盘用户提供单键快捷键的程序。

这来自W3 accessibility success criteria

我认为,很难实现真正可访问的悬停和展开下拉菜单。如果可能的话,我们应避免使用此模式,而应尝试其他设计,例如目录。有关详细信息,请检查我的blog article

答案 6 :(得分:-3)

简短的回答是肯定的 - 基于给定按键触发的javascript和jquery事件可能效果最好。