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

Set JAWS cursor focus programmatically

本文关键字:光标 焦点 JAWS 设置 编程 方式      更新时间:2023-09-26

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

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

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

使用 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();

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