用于使用户界面可供访问的技巧
下面是一系列技巧,它们可以使某些内容可供 Windows 提供的 IAccessibility 接口使用。
- 使用 Group 来代替 Label。
- 如果使用 Label 来作为一组相关窗口小部件的标题,则除去该标注并将它们的父代组合体替换为文本与标题 Label 相同的 Group。
- 避免使用中间组合体。
- 由于存在要读取的窗口小部件,因此 IAccessibility 工具将读取带有焦点的窗口小部件的父层次结构。请确保在树中的任何位置都不存在没有文本的窗口小部件。
- 使用只读的 Text 来代替 Label。
- 您可以使用键盘来访问文本,如果您希望通过键盘导航访问标注中的信息,则应该使用文本。请注意,文本旁边的标注将被视为标题,因此,如果要显示一个标题/值对,则只需要使值窗口小部件成为 Text。
- 阅读并理解 IBM 核对表。
- IBM 在 http://www.ibm.com/able/guidelines/software/accesssoftware.html 提供了一个有用的核对表,您可以借助该核对表来实现优良的可访问性。
- 为所有菜单和菜单项指定助记符。
- 确保助记符在给定菜单中是唯一的。如果菜单是使用多个插件动态组成的,则最好不要指定助记符,这是因为通常无法避免冲突(例如,文件 > 新建列表或窗口 > 显示视图列表)。
- 为对话框/首选项页面/属性页面中的控件(例如按钮、复选框和单选按钮等等)的所有标注指定助记符。
- 确保助记符在对话框中是唯一的。务必避免与缺省按钮(例如,首选项页面中的“恢复”、“缺省值”和“应用”以及向导中的“下一步”、“上一步”和“完成”)发生冲突。不要为“确定”和“取消”按钮指定助记符。如果将“确定”设置为 shell 的缺省按钮并使“取消”等同于关闭 shell,则缺省情况下,Enter 键和 Esc 键将映射至这些按钮。通常,使用 Esc 键或 Enter 键来执行一些操作并不是好的做法。
- 确保在没有标注的控件前面有标注。
- 如果控件没有它自已的标注(例如文本字段),则使用以“:”结尾的前导标注并为它指定助记符。当该控件带有焦点时,屏幕阅读器(例如 JAWS)将读取此标注(请参阅窗口 > 首选项 > 常规)。
- 避免使用多余的独立标注。
- 您不能使用键盘来导航到独立标注,由于这些标注无法获得焦点,所以屏幕阅读器(例如 JAWS)将跳过这些标注。
- 不要为主窗口中的控件指定助记符。
- 即使主窗口看起来象对话框(例如 org.eclipse.ui.forms 中的表单编辑器),也不要对主窗口中的控件(主菜单和主菜单项除外)指定助记符,这是因为这些助记符通常会与菜单助记符发生冲突。
- 为常用功能(并且仅限于常用功能)指定快捷键。
- 在 SWT 中,当前只能使用两种方法来建立快捷键:
- 通过对主菜单栏中的菜单项设置加速键(在上下文菜单中,它们将被忽略)- JFace 操作支持此方法
- 通过使键侦听器与特定控件相关联(例如,在视图或编辑器中的实现中)
请查阅 Eclipse SDK 快捷键表以避免冲突,可以在常规 > 键首选项页面上查看这个表。
- 避免使用 Alt+{键}、Ctrl+Alt+{键} 和 Ctrl+空格+{键} 组合。
- Alt+{键} 组合可能会与菜单助记符发生冲突
- Ctrl+Alt+{键} 组合可能会与在通用键盘上输入特殊字符发生冲突(alt Gr = Ctrl+Alt)
- Ctrl+空格+{键} 组合可能会与用于亚洲语言的方式切换的“Ctrl-空格”发生冲突。
- 尝试保存导航上下文。
- 例如,在窗口 > 首选项中,我们现在可以记住您上次选择了哪个页面。这样就可以避免每次都需要在列表中导航。
- 指定小组中的一个特定人员来负责项目的可访问性。
- 每一件重要事情都需要提倡。请确保小组中的每个人都明白良好的可访问性至关重要并且愿意充分配合负责人。
- 测试可访问性。
- 偶尔让小组举办一次“不使用鼠标日”活动,在那一天,他们将尝试只通过键盘使用产品。如果您正在
Windows 上进行开发,请获取一份
JAWSTM
并确保用户界面能够与其配合使用。