Как программы чтения с экрана справляются с вложенными aria-live с aria-atomic
Как программа чтения с экрана будет обрабатывать случай, когда у вас есть элемент с aria-live
а также aria-atomic
внутри другого элемента с aria-live
а также aria-atomic
а содержимое меняется внутри вложенного элемента?
Будет ли он читать оба раздела, читая вложенный раздел дважды?
HTML:
<div aria-live="polite" aria-atomic="true">
Here is some text, <span>this itself may change</span>. It is a large section of the page
<div aria-live="polite" aria-atomic="true">
This is another part of the page that may change, it is also large. <span>This part may change too</span>
</div>
</div>
Причина, по которой я спрашиваю, заключается в том, что я использую AngularJS для создания SPA, который должен быть ADA-совместимым. У сайта есть вложенная схема размещения, где внутренние разделы страницы будут изменены без изменения внешних разделов, но внешние разделы могут изменить одну точку. В идеале я хотел бы, чтобы при изменении он читал только внутренний раздел. Когда внешний раздел изменяется, он будет читать все это, один раз.
1 ответ
Извините, это зависит от API:
Таблица сценариев изменения документа и событий, которые должны запускаться в каждом сценарии API. Событие MSAA + UIA Express. Событие MSAA + IAccessible2. Событие ATK/AT-SPI. Mac OS X Уведомление об удалении текста., AXLiveRegionChanged Когда текст вставляется EVENT_OBJECT_LIVEREGIONCHANGED IAccessible2: IA2_EVENT_TEXT_INSERTED text_changed:: вставки Если в живом регионе, AXLiveRegionChanged Когда текст изменен EVENT_OBJECT_LIVEREGIONCHANGED IAccessible2: IA2_EVENT_TEXT_REMOVE text_changed:: удалить Если в живом регионе, AXLiveRegionChanged и IA2_EVENT_TEXT_INSERTED и text_changed:: вставка
aria-atomic
поведение предлагается:
Пользовательские агенты ДОЛЖНЫ проверять цепочку элементов-предков на aria-atomic="true". Если они найдены, пользовательские агенты ДОЛЖНЫ установить отношение RELATION_MEMBER_OF так, чтобы оно указывало на предка, который устанавливает aria-atomic="true".
aria-live
поведение также:
Пользовательские агенты ДОЛЖНЫ гарантировать, что работающая вспомогательная технология может получать уведомления об удалении узла перед удалением. Это позволяет вспомогательной технологии, такой как программа чтения с экрана, возвращаться к соответствующему удаляемому узлу DOM. Это важно для живых регионов, где важны перемещения. Например, программа чтения с экрана захочет уведомить пользователя о том, что другой пользователь покинул комнату чата. Событие в MSAA будет EVENT_OBJECT_HIDE. Для ATK/AT-SPI это будет children_changed::remove. А в Mac OS X это событие AXLiveRegionChanged. Это также требует, чтобы пользовательский агент предоставил уникальный идентификатор в уведомлении API доступности, идентифицирующий уникальный удаляемый узел.
Рекомендации
- WAI-ARIA 1.0 Авторские практики: управление динамическими изменениями
- Техническое руководство по ускоренному динамическому контенту
- Руководство по внедрению пользовательского агента WAI-ARIA 1.0: изменения в содержании документа или видимости узла
- Отчет о реализации WAI-ARIA 1.0
- Замечания о доступности PDF
- WAI-ARIA Рекомендации
- Рабочая группа по протоколам и форматам (PFWG)