1

Прямая области:JAWS читает удаление DOM узла внутри `ария-live` области только в IE

<div aria-live='assertive' id='abc'> </div> 

В JavaScript, первое изменение я сделать это

document.getElementById("abc").innerHTML="<span>Processing</span>"; 

Следующих я сделать еще одно изменение:

document.getElementById("abc").innerHTML="<span>Done</span>"; 

JAWS не имеет никаких проблем в Firefox и читает как «Обработка» и «Done». Но IE читает «Обработка снятия обработки»

Я понимаю, что я заменяю <span> новым <span>. Но как я могу заставить JAWS игнорировать это обновление удаления?

ответ

2

Единственный способ, которым я успешно победил эту ошибку в IE, - это скрыть удаляемый элемент, добавить новый элемент, а затем удалить скрытый элемент.

+0

Спасибо! Это было полезно. Я вижу, что достаточно просто скрывать предыдущий диапазон. Мне не нужно его удалять, так как я заменяю весь внутреннийHTML своим новым содержимым (Done) – KannarKK

+0

Ни один из двух файлов, которые вы предоставили, не использует эту технику. Первый ничего не скрывает.Второе использует другой регион для другого вопроса, как указано в исходном коде: * «Это должно обходить ошибки в браузерах, которые перестанут объявлять обновления одному и тому же div, если они слишком повторяются». * – Adam

+1

Вы правы, примеры не реализуйте эту методику, но, как подтверждено @KannarKK, метод устраняет проблему – unobf

-1

Чтобы понять эту ошибку в IE, вам нужно обратиться к документации для атрибута aria-relevant, в котором указывается, какие изменения вы хотите, чтобы уведомление об этом было прочитано.

Смотрите следующую страницу в документации Microsoft: aria-relevant attribute

В вашем случае, IE считает (ошибочно), что вы делаете текст обновления (из-за использования innerHTML который рассматривается как строка), так он уведомляет удаление и добавление:

Обновления объявляются только по мере добавления узлов, или как текст добавляется или удаляется.

Решение должно быть добавлено или удалено с использованием addChild() и removeChild() функций.

+1

По умолчанию для aria-related установлены дополнения. Это ошибка в IE – unobf

+1

Здесь указано значение по умолчанию (добавление текста). Http://www.w3.org/TR/wai-aria/states_and_properties#aria-relevant – unobf

+0

Я не вижу смысла. Если 'ария-соответствующие' были установлены по умолчанию для' добавок', очевидно, удаление не будет объявлено. Указывая на документ, указывающий «текст добавлений», который уже указывает документ MSDN, не дает никакой дополнительной информации. Здесь ошибка заключается в том, что Internet Explorer рассматривает вызов innerHTML как текстовую модификацию. Использование addChild() и removeChild() или append() в jQuery даст вам ожидаемый результат. – Adam