使用 JAWS 测试 Web 应用的技巧
?
?
如上所述树的情况,整个树容器被给予树的角色,树中的每个项目被给予树项目的角色。如果树节点是可展开的,则将会获得“expanded”状态。如果节点在创建时折叠,expanded 值将为 false,而在展开的情况下该值将为 true。除了在创建时分配角色和状态外,状态必须在控件发生更改时进行更新。对于树项目的情况,如果节点展开,则必须将状态设置为 true,而在折叠时必须将值更新为 false。JAWS 会首先告诉用户这是一个树(Tree),当前的节点是展开的,当用户沿树的结构操作时,JAWS 则会告诉用户当前的焦点在在树的子节点上,从而让盲人用户通过听能够更贴近实际看到的样子。
清单 2.树结构
?
2)aria-describedby 属性用来标识对某个元素更多的描述信息, JAWS 碰到这个属性的时候会提示用户:“Press insert+F1 for help”, 通过 insert+F1 键,一个包含 aria-describedby 指向的文本内容的窗口会弹出来。 如下面这段代码所示:当 JAWS 读到这个 input 输入框时,会提示用户还有额外的描述信息,是否需要打开去读。描述信息是隐藏的,当用户选择去听时,这个描述信息在显示在提示框中读给用户。
清单4.input
?
3)aria-checked aria-pressed 和 aria-selected. 属性用来标识检查框,按钮,窗口小部件(Widget)是否被选中等信息,从而使得 JAWS 能够识别当前元素的状态,并且及时的告诉用户。
?
JAWS 11 对 ARIA 提供了更多的支持,例如支持 ARIA 动态内容的文本过滤,使用 ARIA 动态区域的文本过滤,JAWS 可以根据给定的一个 文本字符来决定当有更新时是否读出来。使用 WINDOWS key + CTRL + DASH 键就可以打开这个文本过滤的对话框,用户可以输入任意 可能在该动态区域出现的字符,并且可以选择 JAWS 在该字符出现的时候才读动态区域的内容或者选择出现该字符时忽略不读该区域 的内容, 如图 1 所示,这样就给 JAWS 用户对动态区域的文本内容有了更多的控制。
图 1. 动态文本过滤
JAWS 对 DnD 的支持:
JAWS 11 支持 ARIA 的 Dnd 的属性 aria-grabbed 和 aria-dropeffect. 当用户在 Web 页面或者应用的元素上应用这两个属性时, JAWS 就能很容易的识别被选择的对象,能够被移动到的其他位置,并且在合适的时机和位置释放对象。 使用 WINDOW key + CTRL + EQUALS 可以打开 ARIA 拖拽的对话框。对话框里面会列出所有可以放置的位置元素, 当然这是由用户标识出来的。当选择了其中一个位置时,JAWS 就会将焦点移到那个元素上。如果没有可以放置的位置元素, JAWS 会通过消息提示出来,而不打开这个对话框。
回页首
JAWS 使用中的注意事项
JAWS 是成熟的屏幕阅读器软件,目前也是是在美国使用最广泛的屏幕阅读器,包含数百个用于导航和获取信息的命令。对于盲人用户来说使用起来可能比较得心应手,但对于正常人用来测试来讲则可能会感觉不适应,这里列出了几点注意事项:
1)使用 JAWS 时切忌用鼠标,鼠标会破坏 JAWS 的虚拟缓冲区,导致 JAWS 的行为异常。所以在测试 Accessibility 时一般把使用 JAWS 进行测试放在最后一项,起码要在键盘的支持都已经完善了之后。
2)适时的切换 JAWS 的模式,当 JAWS 遇到某些本应该读的信息却不读时,可以考虑用 INSERT + Z 切换一下 JAWS 的模式。ARIA 的某些属性可以使 JAWS 自动切换模式,比如 application,document 等。如果没有自动切换的话可以在此处加一些提示,提醒用户切换模式才能获得更好的效果。
3)JAWS 默认会读 list 和 table,不用特殊加属性。开始开发人员可能会有误解,因为 list 目录中的各项和 table 里面的各个单元本身是无法用键盘访问的,但是 JAWS 识别 li 和 table 元素,提供了对应的快捷键可以读到里面的各项内容,不需要提供额外的属性。
回页首
总结
本文介绍了 JAWS 作为屏幕阅读器的工作原理和一些基本的快捷键,以及 JAWS 对 ARIA 的支持等实用信息。
回页首
声明
本文章仅代表作者本人观点,与 IBM 公司无关。
<!-- CMA ID: 556763 --> <!-- Site ID: 10 --> <!-- XSLT stylesheet used to transform this file: dw-article-6.0-beta.xsl -->?
参考资料
“开发和测试访问无障碍的 Web 应用”(developerWorks 中国,2010 年 3 月)介绍了如何创建为残障人士无障碍访问的 Web 应用。http://www.ibm.com/developerworks/cn/web/1010_sunqy_jaws/index.html?ca=drs-