以编程方式设置JAWS光标焦点

时间:2015-06-16 12:17:39

标签: javascript focus usability wai-aria jaws-screen-reader

我正在开发一个需要通过JAWS访问的Web应用程序。有一项要求是,需要关注新开放的对话,以便JAWS宣布。我实现了这个,没有JAWS它工作正常:对话框的第一个元素有焦点。使用JAWS + IE测试此网站显示该元素是聚焦的,但盲文查看器显示不同的内容(页面标题的一部分),并且也正在阅读。

据我了解,这意味着PC的光标是正确的,但JAWS光标放错了位置。

有没有办法使用JavaScript影响JAWS游标位置?

2 个答案:

答案 0 :(得分:1)

在使用JAWS进行测试时,您不仅需要看屏幕,而且还需要听听JAWS在说什么。如果您需要进行测试以提供可靠的结果,请花点时间熟悉JAWS。

创建可访问对话框的最佳方法是:

  • 确保对话框标题具有ID属性。
  • 如果对话框中有短消息,请确保它也具有ID属性。
  • 赋予容器“对话”角色和tabindex“ -1”角色。
  • 确保容器的ARIA-LABELLEDBY属性包含标题的ID。
  • 确保容器的ARIA-DESCRIBEDBY属性包含短消息的ID(如果有的话)。
  • 对话框打开后,将焦点发送到容器。

如果按照字母的这种模式进行操作,则对话框将与JAWS和其他AT完美配合。

简单的例子:

<div id="dlg_discard" tabindex="-1" role="dialog" aria-labelledby="dialog_heading" aria-describedby="dialog_message">
<h1 id="dialog_heading">Discard changes?</h1>
<p id="dialog_message">Are you sure you want to discard your changes?</p>
<button>Yes</button> <button>No</button>
</div>

...还有使对话框可见的jQuery ...

$("#dlg_discard").show().focus();

答案 1 :(得分:0)

  

有没有办法影响他的JAWS光标位置(通过Javascript)?

没有