【问题标题】:aria-live and JAWSaria-live 和 JAWS
【发布时间】:2011-08-02 07:39:07
【问题描述】:

我正在尝试让 aria-live 区域与 JAWS 11 和 IE8 一起正常工作。

使用下面的代码,我可以让 JAWS 在单击按钮时宣布新值,但行为不是我所期望的。

JSFiddle of this example

<!DOCTYPE html>
<html>
<head></head>
<body>
    <button onclick="document.getElementById('statusbar').innerHTML = parseInt(document.getElementById('statusbar').innerHTML) + 1">Update</button>
    <div id="statusbar" aria-live="polite">0</div>
</body>
</html>

使用我的 JAWS11/IE8 配置,每次单击按钮时我都会听到:

点击数字 HTML 值(点击后) JAWS 说 ------------ ------------- --------- 1 1 “更新按钮 0” 2 2“1” 3 3 "2"

问题,我的问题是:我如何让 JAWS 宣布 aria-live 区域的当前值,而不是 aria-live 区域的先前值?

我也对其他屏幕阅读器将如何处理此功能感兴趣。

【问题讨论】:

标签: accessibility wai-aria jaws-screen-reader


【解决方案1】:

您的代码是正确的。显然,“后面的 1”是discovered。从链接来看,使用aria-atomic="true" 似乎可以解决问题。但是,给出的示例确实在 IE9 和 Firefox 中正常工作。

如果您还没有偶然发现它们,请查看codetalksaccessibleculture.org 上的测试用例。有很多细微的差别需要注意。当测试失败时不要感到惊讶!在过去一年左右的时间里,我遇到了一些可能对您有所帮助的(不充分的)技巧。

方法一:role="alert"

alert 角色是 supposed to be 等效于 aria-live="assertive",但旧版本的 JAWS 不能正确处理它。查看 2011 年 2 月的 these examples,其中指出:

如果您希望在 IE7 或 IE8 中完全支持 JAWS 10,最好同时使用 role="alert" 和 aria-live="assertive" 的警报。虽然这有点多余,因为根据定义,警报角色将作为一个自信的实时区域进行处理,这样做确实允许 JAWS 10 在这两个浏览器中自动宣布更新的警报内容。

Firefox4+ 和 IE9 都不需要这个。但它会是这样的:

<div id="statusbar" role="alert" aria-live="assertive">
  Contents will be spoken when changed
</div>

方法2:强制焦点破解

通过动态创建 DOM 元素并强制将焦点集中在它上面,您可以“欺骗”大多数屏幕阅读器来阅读内容。它很老套,但很有效……有点像Create and Focus 示例的重点。简化后,您可以执行以下操作:

<div id="statusbar" role="alert"></div>

$('#statusbar')
  .clear()
  .append('<div tabindex="-1">' + newString + '</div>')
  .children().first().focus()
;

在大多数情况下,仅仅隐藏/显示内容实际上效果很好。但是,VoiceOver 的焦点停留在元素上,并且在再次显示时不会说出其内容。因此,从 DOM 中删除它似乎是目前最万无一失的方法。我不喜欢它,但事情就是这样。

【讨论】:

  • 很好的答案,谢谢!在 IE8 和 JAWS 11 中使用 aria-live="polite" 和 role="alert" 确实会读取当前值(而不是之前的值),但是它会读取两次当前值。
  • 在获得焦点的元素上使用aria-live,会使 JAWS 多次宣布该元素。只需使用@CourtneyChristensen jQuery hack 就足够了,没有任何aria-liverole。正如我在我的项目中所做的那样。非常感谢你的破解!
【解决方案2】:

如果您使用的是 JAWS,我认为您还需要配置默认模式;因为屏幕阅读器有“只读”模式。这个问题可以通过press来解决:

(Insert + z) 打开/关闭只读屏幕阅读器。

http://www.mozilla.org/access/qa/win-webcontent-jaws.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-26
    • 2017-07-29
    • 1970-01-01
    相关资源
    最近更新 更多