我在我的应用程序中更新警报消息。在IE11中进行测试并且更新的警报仅为文本时,JAWS会将其读取两次。我们认为这是可以接受的,因为到目前为止它无法修复。我的纯文本错误消息是:
<span id="error" role="alert" aria-live="assertive">
We have a very important message for you!
</span>
我的问题是,当更新的警报具有也具有锚标记的文本时,警报将被读取近三次。 &#34;近三次&#34;因为它被读取两次,然后第三次在锚标记之后停止读取。我的锚标记警报信息是:
<span id="error" role="alert" aria-live="assertive">
We have a very important message for you! <a href="#">Click here</a> for more information.
</span>
这是一个可以测试问题的jsfiddle:http://jsfiddle.net/W4Km8/5851/
我的IE版本是11.0.9600.17801,而JAWS是16.0.2339。
你能好好看看吗?
答案 0 :(得分:0)
我得到了你用JAWS 16和IE 11描述的行为。但它在Firefox中很有用。警报只读一次。我无法让它在Chrome中运行。
JSFiddle对iPad上的VoiceOver毫无用处。我无法导航到警报按钮来测试您的示例。 VO可以看到左侧导航面板中的所有“隐藏”对象。虽然您只看到一次扩展的一个部分(框架,小提琴选项,外部资源等),但所有部分基本上都扩展为VO,因为jsfiddle没有使用aria-hidden。
如果你改变你的例子使用aria-live ='polite',那么它在IE中工作正常。
答案 1 :(得分:0)
将Role = application添加到span并添加aria-describedby =&#39;错误&#39;属性为按钮。
请进行以上更改。它会起作用。