gpt4 book ai didi

javascript - JAWS 不读取动态内容。 IE11

转载 作者:行者123 更新时间:2023-11-29 15:35:56 26 4
gpt4 key购买 nike

我有一个搜索表单。当用户提交表单时,ajax 请求被发送到服务器。当响应到来时,我更新找到的项目计数值,但 JAWS 读取以前的项目计数值。为了让 JAWS 阅读新内容,我使用了 aria 属性和 role="status"。但是 JAWS 仍然没有按预期工作。

我尝试过的: Getting screen reader to read new content added with JavaScript , aria-live and JAWS , ARIA Live Regions等等

我做错了什么?

HTML

<form class="search-form">
<label class="keyword-search-input-label" for="keyword-search-input">
<span class="hide">Search</span>
<input class="form-control" type="text" id="keyword-search-input" name="keyword"/>
</label>

<button id="clear-field-button" type="reset">
<span class="hide">Clear Search Field</span>
</button>
<button id="search-button" type="submit" aria-describedby="number-found-items">
<span class="symbol-label">Search</span>
</button>
</form>
<div id="number-found-items" role="status" aria-live="assertive" aria-atomic="true" aria-relevant="all">
<span id="number-found">0</span>
items found
</div>

JS

function updateNumberFound(value) {
$numberFound.text(value || 0);
}

jsFiddle要重现该问题,请尝试将注意力集中在搜索输入上,键入一些文本并按下搜索按钮,同时打开 JAWS。

最佳答案

执行此操作的正确方法是使用一个 role="log"区域,该区域在文档加载并离开屏幕时插入到文档中。然后在发生更新时将您想要宣布的文本附加到该区域。

我已经修改了你的 fiddle 以包含 a11yfy library's执行此操作的代码:https://jsfiddle.net/17mkL2n5/1/embedded/result/

jQuery.a11yfy.assertiveAnnounce(value + ' items found');

我已经在带有 VO 的 OS X、带有 NVDA 的 Windows 和带有 JAWS 14 的 Windows IE 11 上对此进行了测试,它们都可以正常工作。

关于javascript - JAWS 不读取动态内容。 IE11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29142673/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com