Динамически добавляемые элементы для программы чтения с экрана: aria-live vs role-alert

У меня есть приложение, в котором элементы добавляются на страницу динамически, и я хочу, чтобы программы чтения с экрана читали их для разных версий браузеров (IE 8/9/10, FF и Chrome).

В чем разница между следующими двумя: добавлением атрибута 'role = alert' против 'aria-live = assertive'?

$("<div role='alert'>Sample message.</div>").appendTo($existingElement);

$("<div aria-live='assertive'>Sample message.</div>").appendTo($existingElement);

person Puvi    schedule 31.07.2013    source источник
comment
Вы также должны указать, какие программы чтения с экрана вы собираетесь поддерживать. JAWS, NVDA, VoiceOver, ChromeVox и т. Д. Каждый из них ведет себя по-разному и по-разному в разных браузерах.   -  person ckundo    schedule 01.08.2013


Ответы (1)


По умолчанию role='alert' наследует aria-atomic и _ 3_ со значением assertive, поэтому должен вести себя аналогичным образом с точки зрения пользователя. . Однако не все пользовательские агенты реализуют спецификации одинаково.

w3c рекомендует использовать соответствующую роль, если она доступна, а не предпочтение. к общему региону aria-live. Это связано с предупреждением о том, что пользовательские агенты исторически демонстрировали несовместимое поведение между двумя .

Тестирование с помощью тестовой страницы предупреждений HTML5 Accessibility показывает, что ChromeVox 1.27.0 поддерживает выбранный вами метод. показал, а VoiceOver в OS X 10.8.4 с Safari - нет.

person ckundo    schedule 01.08.2013