Поделиться через


Руководство по внедрению ARIA для поставщиков AT: Internet Explorer 8

В этом документе рассматривается способы поддержки полнофункциональных интернет-приложений со специальными возможностями (ARIA) в Windows Internet Explorer 8 с помощью Microsoft Active Accessibility и модели автоматизации пользовательского интерфейса Майкрософт. В первую очередь он предназначен для поставщиков специальных возможностей (AT). Обратите внимание, что ARIA в Internet Explorer 8 основывается на спецификации, разработка которой в настоящее время продолжается. Поэтому некоторые возможности спецификации ARIA могут поддерживаться не полностью.

Данный документ содержит следующие разделы.

  • Введение в W3C WAI-ARIA и модель автоматизации пользовательского интерфейса 
  • Сопоставление ARIA с Microsoft Active Accessibility и моделью автоматизации пользовательского интерфейса 
    • Программный доступ к ARIA 
    • Приоритет разметки ARIA перед HTML 
    • Доступ к атрибутам ARIA, не сопоставленным напрямую с API специальных возможностей 
    • Сопоставление ролей ARIA 
    • Доступ к состояниям и свойствам ARIA 
  • Специальная обработка, требующая дополнительных вычислений 
    • Значения мини-приложений 
    • Атрибуты отношений 
  • Связанные разделы

Введение в W3C WAI-ARIA и модель автоматизации пользовательского интерфейса

Internet Explorer 8 теперь поддерживает спецификацию полнофункциональных интернет-приложений со специальными возможностями (ARIA), основанную на рабочем проекте W3C WAI-ARIA. Это позволяет веб-разработчикам сделать веб-содержимое и веб-приложения более доступными для людей с ограниченными возможностями. Веб-сайты все больше становятся похожи на полноценные приложения благодаря использованию набора технологий, таких как сценарии, стили CSS и язык HTML. Такие сайты предлагают пользователям динамическое содержимое и широкие возможности взаимодействия, зачастую благодаря использованию настраиваемых объектов пользовательского интерфейса. В спецификации W3C WAI-ARIA (также называемой планом ARIA) определяются рекомендации для веб-разработчиков по добавлению свойств, состояний и ролей в полнофункциональные интернет-приложения. Это позволяет повысить доступность веб-сайтов и веб-приложений при использовании специальных возможностей (AT) для взаимодействия с веб-содержимым.

Свойства, состояния и роли спецификации ARIA не могут быть полностью сопоставлены со спецификацией Microsoft Active Accessibility, поскольку ARIA поддерживает новые элементы управления и свойства, не поддерживаемые Microsoft Active Accessibility, например ползунок.

В Windows Vista реализована новая модель специальных возможностей: спецификация модели автоматизации пользовательского интерфейса и обязательства перед сообществом. Для обеспечения полноценной поддержки ARIA в спецификации модели автоматизации пользовательского интерфейса определяются свойства, которые могут быть сопоставлены с ролями, состояниями и свойствами, определенными в спецификации ARIA. Это позволяет Internet Explorer 8 и другим приложениям поддерживать объектную модель ARIA в контексте автоматизации пользовательского интерфейса, не отказываясь от базовой модели Microsoft Active Accessibility. Таким образом, поставщики AT могут добавлять поддержку определенных элементов модели автоматизации пользовательского интерфейса в свои реализации интерфейса Microsoft Active Accessibility, не переписывая код.

При добавлении поддержки модели автоматизации пользовательского интерфейса поставщики AT также получают следующие преимущества: модель автоматизации пользовательского интерфейса является более расширяемой по сравнению с Microsoft Active Accessibility, а клиенты автоматизации пользовательского интерфейса (например, поставщики AT или средства автоматизированного тестирования, поддерживающие модель автоматизации пользовательского интерфейса) являются более быстрыми в работе, надежными и безопасными по сравнению с клиентами на базе архитектуры Microsoft Active Accessibility (поставщиками AT или средствами автоматизированного тестирования, поддерживающими спецификацию Microsoft Active Accessibility).

  • Спецификация модели автоматизации пользовательского интерфейса обеспечивает более высокую расширяемость по сравнению со спецификацией Microsoft Active Accessibility

    В спецификации модели автоматизации пользовательского интерфейса определены шаблоны элементов управления, которые задают расширения функциональности для данного элемента автоматизации пользовательского интерфейса. Шаблоны элементов управления предоставляют клиентам сведения о доступных расширениях функциональности элементов управления, а также позволяют им управлять пользовательским интерфейсом. С помощью шаблонов элементов управления веб-разработчики могут сопоставлять свойства ARIA, не имеющие эквивалента в Microsoft Active Accessibility, например aria-valuemaxи aria-valuemin.

    Свойства ARIA Определение Свойства автоматизации пользовательского интерфейса
    aria-valuemax Максимальное допустимое значение для типа диапазона мини-приложения. MaximumProperty (RangeValuePattern)
    aria-valuemin Минимальное допустимое значение для типа диапазона мини-приложения. MinimumProperty (RangeValuePattern)

    Спецификация модели автоматизации пользовательского интерфейса также обеспечивает простую текстовую объектную модель TextPattern. Эта модель позволяет вставлять объекты в объект документа, что дает возможность агентам пользователей и клиентским приложениям работать с веб-содержимым как с HTML-документом, а не как с пользовательским интерфейсом настольной системы в зависимости от пользовательского сценария. Посредством шаблонов, свойств AriaRole и AriaProperties модель автоматизации пользовательского интерфейса поддерживает и расширяет рабочий проект W3C WAI-ARIA (6 августа 2008 г.) вне зависимости от определенного приложения или агента пользователя.

  • Клиенты автоматизации пользовательского интерфейса являются более быстрыми в работе, надежными и безопасными по сравнению с клиентами Microsoft Active Accessibility

    Особенностью архитектуры Microsoft Active Accessibility является избыточность взаимодействия между интерфейсами. Она подразумевает большое число ненужных операций обмена данными, например выполнений методов считывания и присвоения свойств. Поэтому многие поставщики AT предпочитают обращаться к реализациям Microsoft Active Accessibility внутри процесса целевого приложения (внутрипроцессное выполнение). Однако в целях обеспечения безопасности и технической надежности корпорация Майкрософт всегда рекомендовала запускать специальные возможности вне процесса (внепроцессное выполнение). Внутрипроцессное выполнение клиента Microsoft Active Accessibility повышает сложность и снижает стабильность работы сервера Microsoft Active Accessibility. Кроме того, внутрипроцессный клиент Microsoft Active Accessibility с большей вероятностью будет работать нестабильно, так как ему постоянно приходится оценивать и анализировать значения, что может повлиять на фактические значения и длительность обработки внутренних сообщений. В Internet Explorer 8 внутрипроцессное выполнение реализовать еще сложнее из-за режима LCIE (Loosely-Coupled IE), в котором браузер браузер выполняется в рамках нескольких процессов.

На клиенты автоматизации теперь не распространяются устаревшие ограничения Microsoft Active Accessibility. В таких ситуациях, как, например, извлечение значений нескольких свойств из элементов DOM, внепроцессные клиенты автоматизации пользовательского интерфейса работают гораздо быстрее, чем внепроцессные клиенты Microsoft Active Accessibility. Если раньше для выполнения одного запроса требовался отдельный цикл приема-передачи, то теперь один такой цикл позволяет произвести несколько операций извлечения данных. Вследствие более высокой производительности поставщики AT скорее всего будут прибегать к внепроцессному выполнению клиентов автоматизации пользовательского интерфейса, что обеспечит более стабильное взаимодействие с поставщиками автоматизации пользовательского интерфейса (например, Windows Vista и Internet Explorer 8).

По этим причинам в Internet Explorer 8 реализована модель автоматизации пользовательского интерфейса, расширяющая возможности Microsoft Active Accessibility с помощью интерфейса IAccessibleEx. Internet Explorer 8 распознает роли, состояния и свойства ARIA и предоставляет к ним доступ клиентам автоматизации пользовательского интерфейса (например, поставщикам AT или средствам автоматизированного тестирования) посредством свойств AriaRole и AriaProperties, определенных в спецификации модели автоматизации пользовательского интерфейса. Интерфейс IAccessibleEx также позволяет существующим внутрипроцессным AT получать доступ к собственным интерфейсам поставщиков автоматизации пользовательского интерфейса, добавленным в Internet Explorer 8.

Сопоставление ARIA с Microsoft Active Accessibility и моделью автоматизации пользовательского интерфейса

Программный доступ к ARIA

Программный доступ к мини-приложениям ARIA осуществляется с помощью API специальных возможностей настольных систем в формате, аналогичном и совместимом с другими приложениями для настольных систем. Некоторые объекты ARIA могут быть напрямую сопоставлены с набором свойств и методов API для настольных систем. Например, значение aria-button атрибута role может быть напрямую сопоставлено со значением ROLE_SYSTEM_PUSHBUTTONсвойства Microsoft Active Accessibility IAccessible::get_accRoleили значением Button свойства ControlType в модели автоматизации пользовательского интерфейса.

Приоритет разметки ARIA перед HTML

Если в Internet Explorer 8 значение свойства или состояния Microsoft Active Accessibility или модели автоматизации пользовательского интерфейса задается как разметкой ARIA, так и разметкой HTML, значения ARIA всегда имеют приоритет. Назначением ARIA является определение ролей, состояний и свойств за пределами возможностей, предоставляемых HTML, поэтому ARIA всегда переопределяет такие значения. Например, если группа из четырех кнопок определена в разметке ARIA как ползунок, то Internet Explorer предоставляет программный доступ посредством API специальных возможностей (Microsoft Active Accessibility и модели автоматизации пользовательского интерфейса) не к четырем кнопкам, а к ползунку.

Доступ к атрибутам ARIA, не сопоставленным напрямую с API специальных возможностей

В Internet Explorer 8 атрибут AriaRole сопоставлен с соответствующим типом элемента управления модели автоматизации пользовательского интерфейса или свойством Role в Microsoft Active Accessibility. В модели автоматизации пользовательского интерфейса исходный атрибут ARIA Role также доступен посредством свойства AriaRole. Свойство AriaRole в модели автоматизации пользовательского интерфейса возвращает неформатированную строку, приведенную в разметке, без применения сопоставления.

Internet Explorer 8 предоставляет доступ к неотформатированным данным ARIA в виде текстовой строки посредством свойства AriaProperties модели автоматизации пользовательского интерфейса. По возможности они также сопоставляются с соответствующими состояниями и свойствами в Microsoft Active Accessibility и модели автоматизации пользовательского интерфейса.

AriaProperties является строковым свойством, которое представляет собой коллекцию пар имя/значение с разделителями «=» (равно) и «;» (точка с запятой), например checked=true;disabled=false. Знак обратной косой черты («\») используется в качестве escape-символа, когда в значениях используются указанные выше разделители или сам знак «\».

Сопоставление ролей ARIA

Для обеспечения доступа к ролям ARIA они сопоставляются с ролями Microsoft Active Accessibility, а также типами элементов управления и свойством AriaRole модели автоматизации пользовательского интерфейса (полный список сопоставлений см. в статье Сопоставление ролей, состояний и свойств ARIA модели автоматизации пользовательского интерфейса). С помощью этих API данные ARIA предоставляются поставщикам AT. С помощью свойства LocalizedControlType элемента управления модели автоматизации пользовательского интерфейса Internet Explorer 8 также может предоставлять локализованные описания роли ARIA. Рабочий проект W3C WAI-ARIA (6 августа 2008 г.) на данный момент не предусматривает пригодных для чтения строк для ролей ARIA, однако такая возможность может появиться в будущем. Если локализованная строка не указана, система предоставляет строку LocalizedControlType по умолчанию.

Например, роль флажка ARIA поддерживается в Microsoft Active Accessibility ролью ROLE_SYSTEM_CHECKBUTTON, а в модели автоматизации пользовательского интерфейса — типом элемента управления Checkbox и значением checkbox свойства AriaRole.

Доступ к состояниям и свойствам ARIA

В Internet Explorer 8 большая часть состояний и свойств W3C ARIA взаимно однозначно сопоставлены с различными состояниями и функциями Microsoft Active Accessibility и модели автоматизации пользовательского интерфейса. Полный список поддерживаемых ролей, состояний и свойств ARIA и их сопоставлений см. в статье Сопоставление ролей, состояний и свойств ARIA модели автоматизации пользовательского интерфейса.

В модели автоматизации пользовательского интерфейса также имеется строковое свойство AriaProperties, которое возвращает коллекцию пар имя-значение для большинства состояний и свойств ARIA.

Internet Explorer 8 распознает только состояния и свойства, перечисленные в рабочем проекте W3C ARIA. Свойство AriaProperties модели автоматизации пользовательского интерфейса возвращает только эти значения. Поэтому, если веб-разработчик добавляет в элемент настраиваемое состояние ARIA (например, myAriaProp=true), свойство AriaProperties не вернет пару имя-значение myAriaProp=true.

Например, состояние ARIA checked поддерживается в Microsoft Active Accessibility состоянием STATE_SYSTEM_CHECKED, а в модели автоматизации пользовательского интерфейса — свойствами ToggleState (Toggle Pattern) и AriaProperties.

Специальная обработка, требующая дополнительных вычислений

Значения мини-приложений

Если в Internet Explorer 8 роль мини-программы содержит свойство aria-valuenow, программный доступ к нему может осуществляться двумя способами.

  • Microsoft Active Accessibility обеспечивает доступ к нему посредством свойства IAccessible::get_accValue.
  • Модель автоматизации пользовательского интерфейса обеспечивает доступ к нему посредством свойства ValueProperty (шаблон RangeValue).

В Internet Explorer 8 свойства aria-valuemin и aria-valuemax поддерживаются также посредством шаблона RangeValue, а также с помощью свойств MinimumProperty (шаблон RangeValue) и MaximumProperty (шаблон RangeValue). Однако эти атрибуты не сопоставлены со свойствами Microsoft Active Accessibility и недоступны посредством этих свойств.

Атрибут aria-valuetext потенциально может быть сопоставлен как с Microsoft Active Accessibility, так и с моделью автоматизации пользовательского интерфейса. Однако Internet Explorer 8 не обеспечивает доступ к нему посредством модели автоматизации пользовательского интерфейса. Действуют следующие правила.

  • Microsoft Active Accessibility обеспечивает доступ к атрибуту aria-valuetext посредством свойства IAccessible::get_accvalue. Когда задаются оба свойства ARIA — и aria-valuenow, и aria-valuetext — в свойстве get_accValue будут содержаться данные из свойства aria-valuetext.
  • Как указано в документе «Обязательство перед сообществом: модель автоматизации пользовательского интерфейса», в модели автоматизации пользовательского интерфейса свойство ValueProperty (шаблон Value) сопоставляется с атрибутом aria-valuetext. Однако в Internet Explorer 8 реализован только шаблон RangeValue, поэтому доступ к атрибуту aria-valuetext посредством модели автоматизации пользовательского интерфейса в Internet Explorer 8 не предоставляется. Если в приложении реализован как шаблон RangeValue, так и шаблон Value, то если указаны оба атрибута — как aria-valuetext, так и aria-valuenow — доступ к ним может осуществляться независимо.

В январском проекте руководства по внедрению W3C ARIA описаны дополнительные расширения функциональности и способы проверки значений, которые могут поддерживаться Microsoft Active Accessibility и моделью автоматизации пользовательского интерфейса. Многие из этих рекомендаций были добавлены на слишком позднем этапе, чем обусловлены следующие ограничения.

  • Не поддерживается вызов событий изменения значений для динамического изменения атрибута aria-valuenow.
  • Отсутствуют способы проверки наличия всех необходимых значений для элемента управления.
  • Перед заданием значения посредством Microsoft Active Accessibility или модели автоматизации пользовательского интерфейса невозможно проверить, находится ли объект в состоянии только для чтения или в отключенном состоянии.
  • Невозможно проверить, находится ли новое или обновленное значение атрибута aria-valuenow в диапазоне, ограниченном значениями aria-valuemin и aria-valuemax.

Атрибуты отношений

Два или несколько элементов могут быть связаны посредством атрибутов. Подобные атрибуты называются атрибутами отношений. Задавать отношения между элементами можно вне зависимости от их ролей.

В Internet Explorer 8 реализованы только прямые отношения; обратные отношения не поддерживаются. При необходимости для расчета обратных отношений AT может использовать модель DOM. Internet Explorer 8 не обрабатывает обратные отношения, поскольку в используемой в настоящее время архитектуре такая обработка приводит к постоянным снижениям производительности. Поставщики AT могут производить расчет обратных отношений в индивидуальном порядке, что практически устраняет снижения производительности, так как число расчетов при этом четко ограничено.

В Internet Explorer 8 реализованы следующие свойства отношений, доступ к которым предоставляется посредством модели автоматизации пользовательского интерфейса.

  • aria-controls предоставляется посредством свойства ControllerFor модели автоматизации пользовательского интерфейса.
  • aria-describedby предоставляется посредством свойства DescribedBy модели автоматизации пользовательского интерфейса.
  • aria-flowto предоставляется посредством свойства FlowsTo модели автоматизации пользовательского интерфейса.
  • aria-labelledby предоставляется посредством свойства LabelledBy модели автоматизации пользовательского интерфейса.

Атрибут aria-owns не может быть сопоставлен со свойством отношения в модели автоматизации пользовательского интерфейса. Однако настройка этого свойства оказывает влияние на дерево объектов специальных возможностей в виде транспонирования узла или даже ветви в соответствии с отношением между элементами.

Связанные разделы