Проблема доступности JAWS — несколько чтений для активной области в Internet Explorer

У нас есть модальный диалог с несколькими зависимыми раскрывающимися списками, выбор значения в одном раскрывающемся списке динамически повторно заполняет зависимый раскрывающийся список.

Из-за такого поведения JAWS снова считывает все поля при каждом повторном заполнении любого из параметров раскрывающегося списка.

Пример, фиктивная разметка

<div role="dialog">
   <div>
      <select id = "one">
        <option value="0">A</option>
        <option value="1">B</option>
        <option value="2">C</option>
      </select>
   </div>

   <div aria-live="polite">
      <select id = "two">
        <!-- dynamically populated options -->
        <option value="1">BC</option>
      </select>
   </div>

   <div aria-live="polite">
      <select id = "three">
        <!-- dynamically populated options -->
         <option value="1">BD</option>
      </select>
   </div>
</div>

Выбор значения в раскрывающемся списке «один» заполняет параметры в раскрывающемся списке «два», и аналогичным образом раскрывающийся список «три» зависит от значения раскрывающегося списка «два».

Jaws правильно читает все поля в Chrome и Firefox, однако в Internet Explorer 11 он начинает читать поля с самого начала всякий раз, когда повторно заполняются какие-либо параметры раскрывающегося списка.

Дополнительные сведения Версия Jaws - 15 Использование модального диалогового окна angular ui Браузер читает с самого начала всякий раз, когда в диалоговом окне происходит какое-либо обновление.

Обновление — вот plnkrhttp://plnkr.co/edit/A2mcE2TfFavNEIlnFuPY?p=preview

Дайте мне знать, если потребуется какая-либо дополнительная информация, любая помощь будет принята с благодарностью.


person vijay tyagi    schedule 11.03.2015    source источник
comment
не могли бы вы показать разметку динамически заполняемых параметров?   -  person securecodeninja    schedule 11.03.2015
comment
@Roman, обновил вопрос с разметкой опций   -  person vijay tyagi    schedule 11.03.2015
comment
где живой регион?   -  person unobf    schedule 11.03.2015
comment
@unobf обновил вопрос, пожалуйста, посмотрите   -  person vijay tyagi    schedule 11.03.2015


Ответы (2)


Живые области ARIA предназначены для считывания обновлений видимого (т. е. не отображаемого: нет) содержимого элемента, на котором он размещен. Ваша HTML-разметка корректно работает в IE11 с JAWS. Существует много различий в реализации ARIA live между браузерами и вспомогательными технологиями, которые вызывают различия, которые вы видите.

Поведение по умолчанию для aria-live="polite" заключается в том, что AT считывает все дополнения к региону. В приведенном выше коде это означает, что он должен прочитать все параметры, которые вы заполнили.

Angular.js иногда повторно заполняет весь DOM региона, когда что-то внутри модели или области изменяется, а некоторые AT объявляют арию живых регионов, когда узлы вставляются в документ.

Мне не ясно, чего ваш код пытается достичь, и что вы подразумеваете под JAWS, правильно считывает поля в Chrome и Firefox. Если бы вы могли описать желаемый результат, я мог бы дать больше рекомендаций.

person unobf    schedule 11.03.2015
comment
Я бы создал plnkr для этого и разместил бы то же самое сегодня - person vijay tyagi; 12.03.2015
comment
Я не вижу разметки, которую вы упоминаете в plnker - person unobf; 12.03.2015
comment
Да, разметка немного отличается, но я могу воспроизвести проблему, вы пытались прочитать ее через челюсти в IE 11? - person vijay tyagi; 12.03.2015

По-видимому, у IE есть некоторые проблемы с атрибутом [role="dialog"]. Если мы удалим этот атрибут из модального диалога во время изменения выбранного значения «первого раскрывающегося списка», проблема будет решена.

в основном при изменении первого выбора я нахожу элемент с ролью = «диалог» и удаляю атрибут «роль». Это каким-то образом решает проблему, и JAWS правильно читает модальное окно при повторном заполнении зависимых раскрывающихся списков.

person vijay tyagi    schedule 12.03.2015