键盘辅助功能
快速键

概观

键盘快捷键对于软件设计来说是一个好主意,如果有更好的方法可以让所有用户都能使用键盘快捷键,那么它们对于网页设计来说也是个好主意。该ACCESSKEYHTML属性允许Web开发人员为Web元素分配某些键盘快捷方式浏览器的开发者和辅助技术实现accesskey支持不一致和无效的Web开发人员仍然可以使用accesskey来创建键盘快捷键,但需要考虑许多注意事项。

键盘快捷键作为一般概念

键盘快捷键对所有计算机用户都很有用,因为它们通常允许比鼠标点击允许的更快的交互所有能力的“超级用户”经常使用键盘快捷键在残疾人中,盲人或有运动障碍的人也经常使用键盘快捷键。

键盘快捷键是大多数操作系统的标准辅助功能Microsoft and Apple, for example, have standardized these keyboard shortcuts to make it easier to access menus and functions quickly, without having to use a mouse.

Windows中标准化键盘快捷键的部分惯例是为用作键盘快捷键的字符的下划线加下划线在Windows上,单词“文件”中的字母“F”用下划线标注为存在键盘快捷键的用户提示,并指示哪个键激活快捷方式但是,在Web上,目前没有用于定义或指示每页键盘快捷键的标准约定。

ACCESSKEY属性

从HTML 4.0开始,ACCESSKEY属性可以添加到交互式HTML元素,例如链接和表单控件内的属性只是添加元素,在下面的例子中:

<a href =“http://www.kanehsu.com/”ACCESSKEY = “W”> WebAIM.org < / >
<form action =“submit.htm”method =“post”>
<label for =“name”>名称</ label>
<input type =“text”id =“name”ACCESSKEY = “n” 个>
<input type =“submit”id =“submitform”ACCESSKEY = “S”值=“提交”>
</ FORM>

ACCESSKEYattribute定义指定目标的快捷方式在上面的示例中,“W”访问键将用户带到www.kanehsu.com“N”访问键将用户带到文本输入字段,“S”访问键将提交表单。

一个好主意实施得不好

不幸的是,关于如何最好地实现键盘快捷键,这些建议相当模糊浏览器开发人员,辅助技术开发人员和Web内容开发人员只需绘制自己的课程尽管善意,这种做法未能在用户代理和web开发实践。

浏览器实现

浏览器的实现在品牌和操作系统之间差异很大,但是accesskey快捷方式背后的基本思想是相当一致的用户习惯于他们喜欢的浏览器处理accesskey快捷方式的方式,并且可能必须在切换到另一个浏览器时学习新方法。

击键组合

不同的浏览器使用不同的击键来激活accesskey快捷方式,如下所示:

  • 常见的Windows浏览器:转移+Alt键+ [访问密钥]
    • 在某些浏览器中,Shift是可选的。
  • 常见的Mac的浏览器:控制+选项+ [访问密钥]

重复的accesskey值

大多数浏览器不支持重复accesskey值例如,一个页面不能有两个快捷方式ACCESSKEY = “1”大多数浏览器都会忽略其中一个快捷方式一些浏览器忽略第一个实例,其他浏览器忽略第二个实例一些循环通过快捷方式与每个连续的accesskey键盘激活。

此外,使用HTML5,元素可能有多个访问键(例如,<a href =“home.htm”accesskey =“1小时”>首页</A>)不同浏览器对多个值的支持也有很大差异。

激活accesskey元素

实现也取决于激活相应的accesskey键盘组合将执行的操作有些只是将焦点设置为具有accesskey的元素(用户必须按Enter键激活它),而其他人则会立即激活它这取决于元素的类型而变化甚至更多 - 链接,按钮和表单控件可能都表现不同。

屏幕阅读器实现

由于屏幕阅读器依赖于浏览器的大部分功能,因此访问键的屏幕阅读器实现在很大程度上取决于所使用的浏览器屏幕阅读器使用ie浏览器,例如,以同样的方式表现为ie浏览器一些屏幕阅读器将显示accesskey当遇到元素的值。

浏览器的冲突

整个accesskey理念的一个明显问题是浏览器,操作系统,浏览器扩展等键盘快捷键之间肯定会有冲突。以及在Web内容中定义的那些例如,标准Windows程序上的Alt + F将激活“文件”菜单What happens when a web developer wants to use the same keyboard combination to access a part of the web page, such as a File menu inside a web application? The user's browser will determine how this type of conflict is managed.

对于适用于Windows,Firefox和大多数其他基于Windows的浏览器的Internet Explorer,网页中的accesskey优先于用户代理的键盘快捷键在这种情况下,键盘快捷方式用户可能会遇到困惑和沮丧Web开发人员不能假设用户将知道如何使用accesskey快捷方式,或者知道如何处理accesskey冲突。

屏幕阅读器冲突

accesskey快捷键最大的问题之一是accesskey覆盖屏幕阅读器的键盘快捷键的可能性,它比标准浏览器有更多的键盘命令键盘快捷键是屏幕阅读器功能的重要组成部分,因此屏幕阅读器用户可以通过正确使用访问键获益匪浅相反,如果通过快捷键快捷方式禁用屏幕阅读器键盘快捷键,则可能阻止屏幕阅读器用户执行重要的屏幕阅读器功能。

在发生冲突的情况下,屏幕阅读器快捷方式通常优先,这意味着有效禁用了accesskey快捷方式,即使它们仍然会被识别给用户accesskey快捷方式的可访问性优势已丢失,但屏幕阅读器功能保持不变This, however, may be confusing if the user wants to activate an accesskey.

语言问题

Are there any keystrokes combinations that do not conflict with any browsers, assistive technologies, or operating systems? In short, no已知所有标准击键组合与现有软件冲突,或者将来可能与尚未开发的软件发生冲突考虑到外语时尤其如此浏览器中的“文件”菜单并不总是以英语以外的语言命名为“文件”因此,访问键快捷方式可能不会导致浏览器集中的冲突使用英语,但在设置为使用其他语言时可能会导致同一浏览器发生冲突。

数词

由于每个字母都已被假定与Web功能相关联,因此一些可访问性专家主张使用数字而不是字母来最小化键盘快捷键冲突的整体影响Although there are fewer potential conflicts with numerals—lack of conflicts is by no means guaranteedThis does not mean that numerical values are off-limits—they will work for many users—but remember that there are no standard associations between numbers and web page functionality用户可能会对键盘快捷键中的数字使用感到困惑。

用户怎么知道accesskey快捷键?

accesskey快捷方式的一个最大问题是用户通常不知道它们甚至存在,并且没有标准的方法来通知它们与强调菜单中键盘快捷键字母的Windows环境不同,没有约定或“经验法则”用于警告用户存在accesskey快捷方式开发人员可能会选择模仿Windows环境的约定,或者他们可能会创建自己的约定所有这些努力虽然用心良苦,却达不到理想。

理想就是让用户代理(浏览器、屏幕阅读器等)确定用户可用的accesskey的捷径一些屏幕阅读器已经这样做了,但这对视力不足的键盘用户没有帮助选择使用accesskey快捷方式的开发人员必须通知用户accesskey快捷方式可用实现此目的的方法是:

  • 在激活accesskey的单词中用字母加下划线,例如:ñ分页。
    • 好处:Easy to implement; some users will recognize this convention.
    • 缺点:Not all users will recognize this convention; not all users will know which keystroke combination to use (is it Alt, Ctrl, Shift, etc.?).
  • 将accesskey放在括号中,例如:Next Page(Accesskey:N)
    • 好处:Easy to implement; all users will be able to read the text.
    • 缺点:Changes the layout and look and feel of the web content; not all users will recognize this convention; not all users know which keystroke combination to use.
  • 把括号内准确的击键组合,这取决于使用的浏览器和操作系统,例如:下一页(Alt + N)
    • 好处:告诉用户确切使用的击键组合。
    • 缺点:Requires browser detection scripts, either with JavaScript or server-side scripts; changes the layout and look and feel of the web content.
  • 在单独的页面上创建一个accesskey快捷方式列表,并从站点上使用accesskey快捷方式的所有页面链接到这些快捷方式。
    • 好处:将在一个地方所有的键盘快捷键,方便参考。
    • 缺点:Users must go to a separate page in order to learn the keyboard shortcuts; requires the addition of an extra link on every page; users still may not know which keystroke combination to use (Alt, Shift, etc.) unless it is explained in the external file (which may be a long and awkward document).
  • 使用更复杂的CSS和/或浏览器检测方法暴露accesskey快捷键当元素获得焦点时,或者当鼠标在他们。
    • 好处:Does not interfere with visual layout; if both CSS and browser detection are used, then users can be notified of the exact keystroke combination necessary.
    • 缺点:需要具备高级CSS和/或浏览器检测脚本的工作知识。
  • 使用上述方法的某种组合。

应该使用Accesskey吗?

这个问题的答案并不容易由于实施中存在许多问题,许多开发人员选择完全避免它们 - 甚至是坚定的可访问性倡导者的开发人员即便如此,如果仔细实施,访问密钥快捷方式对某些用户也是有益的例如,在“封闭环境”Web应用程序中,accesskeys可以使重复的进程更有效底线是:有些用户将受益,有些不会,和一些甚至可能弱势。