我有一个搜索表格。当用户提交表单时,ajax 请求被发送到服务器。当响应到来时,我更新找到的项目计数值,但 JAWS 读取以前的项目计数值。为了让 JAWS 阅读新内容,我使用 aria 属性和 role="status"。但是 JAWS 仍然无法按预期工作。
我尝试过的: 让屏幕阅读器阅读使用 JavaScript、 aria-live 和 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 处于打开状态。