Microsoft Active Accessibility - Microsoft Active Accessibility
Microsoft Active Accessibility (MSAA) является Интерфейс прикладного программирования (API) для доступности пользовательского интерфейса. MSAA был представлен как надстройка платформы Microsoft Windows 95 в 1997 году. MSAA призвана помочь Вспомогательные технологии (AT) продукты взаимодействуют со стандартными и пользовательскими пользовательский интерфейс (UI) элементы приложения (или операционной системы), а также для доступа, идентификации и управления элементами пользовательского интерфейса приложения. Продукты AT работают с приложениями с поддержкой MSAA, чтобы обеспечить лучший доступ для людей с физическими или когнитивными проблемами, нарушениями или ограниченными возможностями. Некоторые примеры продуктов AT - программы чтения с экрана для пользователей с ограниченным зрением, экранные клавиатуры для пользователей с ограниченным физическим доступом или дикторы для пользователей с ограниченным слухом. MSAA также может использоваться для инструментов автоматического тестирования и компьютерных обучающих приложений.
Текущая и последняя спецификация MSAA находится в части Microsoft UI Automation Спецификация обещаний сообщества.
История
Первоначально активная доступность называлась Доступность OLE[1] и это наследие отражено в названии его двоичных компонентов, таких как oleacc.dll
и заголовочный файл oleacc.h
который содержит определения и декларации. В рамках продвижения бренда Microsoft ActiveX в марте 1996 года OLE Accessibility была переименована в ActiveX Accessibility (иногда называемая AXA) и представлена как таковая на Microsoft. Конференция профессиональных разработчиков в Сан-Франциско, март 1996 года. Позже торговая марка ActiveX была зарезервирована для интернет-технологий, а ActiveX Accessibility стала Active Accessibility и часто сокращалась до MSAA.
Изначально MSAA была доступна в апреле 1997 года как часть пакета разработчика программного обеспечения Microsoft Active Accessibility (SDK) версии 1.0. В комплект поставки SDK входили документация, библиотеки программирования, образцы исходного кода и повторно распространяемый комплект (RDK), который поставщики доступных технологий могли включать в свои продукты. В RDK включены обновленные компоненты операционной системы Microsoft Windows 95. С Windows 98 и Windows NT 4.0 Service Pack 4, MSAA встроена во все версии платформы Windows и с течением времени получает периодические обновления и исправления.
Программный доступ к приложениям вспомогательных технологий в Windows исторически предоставлялся через MSAA. Однако новые приложения теперь используют Microsoft UI Automation (МАУ), который был представлен в Виндоус виста и .NET Framework 3.0.
История версий
Были выпущены следующие версии Active Accessibility:[2]
Версия | Описание |
---|---|
1.0 | Оригинальный выпуск дополнения для Windows 95. RDK поддерживался только в английской версии операционной системы. (1997) |
1.1 | Включен в Windows 98. |
1.2.x | Первая версия MSAA, доступная как для английской, так и для международных версий Windows. (1998) |
1.3.x | Добавлена дополнительная поддержка для большего количества языков. Введен спутник DLL (oleaccrc.dll) для своей международной библиотеки текстовых ресурсов. Позднее системные компоненты были интегрированы в Windows NT 4.0 Service Pack 6 и выше, Windows 98, Windows 2000 и Windows Me. (1999) |
2.0 | Первая крупная версия MSAA, добавляющая поддержку динамических аннотаций и текста MSAA. Эта версия была интегрирована в Windows XP. Незначительные изменения были внесены в структуру MSAA в последующих версиях Windows. Версия 2.0 RDK стала доступной для старых платформ (Windows 95, 98, 2000, Me, NT) в 2003 году (2000–2008). |
3.0 | Платформа стала частью Windows Automation API 3.0, который интегрирован в API доступности платформы Windows, установленный MSAA и UI Automation (UIA). Windows Automation API включен в Windows 7 и доступен для Windows Vista и XP (2009). |
Мотивация и цели
Мотивирующим фактором разработки MSAA было создание доступного и бесшовного механизма связи между базовой операционной системой или приложениями и продуктами со вспомогательными технологиями.
Программная цель MSAA - позволить элементам управления Windows предоставлять основную информацию, такую как имя, расположение на экране или тип элемента управления, а также информацию о состоянии, такую как видимость, включен или выбран.
Технический обзор
MSAA основан на Компонентная объектная модель (COM). COM определяет механизм взаимодействия приложений и операционных систем.
На рисунке 1 показана высокоуровневая архитектура MSAA.
Приложения (например, текстовый процессор) в MSAA называются серверами, потому что они предоставляют или обслуживают информацию о своих пользовательских интерфейсах (UI). Инструменты обеспечения доступности (например, программы чтения с экрана) в MSAA называются клиентами, потому что они потребляют информацию пользовательского интерфейса из приложения и взаимодействуют с ней.
Системный компонент структуры MSAA, Oleacc.dll, помогает в обмене данными между инструментами обеспечения доступности (клиентами) и приложениями (серверами). Граница кода указывает программные границы между приложениями, которые предоставляют информацию о доступности пользовательского интерфейса, и инструментами доступности, которые взаимодействуют с пользовательским интерфейсом от имени пользователей. Граница также может быть границей процесса, если у клиентов MSAA есть собственный процесс.
Пользовательский интерфейс представлен в виде иерархии доступных объектов; изменения и действия представлены как WinEvents.
Доступные объекты
Доступный объект является центральным интерфейсом MSAA и представлен I Доступный COM-интерфейс и целое число ChildId. Это позволяет приложениям отображать древовидную структуру, которая представляет структуру пользовательского интерфейса. Каждый элемент этого дерева предоставляет набор свойств и методов, которые позволяют управлять соответствующим элементом пользовательского интерфейса. Клиенты MSAA могут получить доступ к программной информации пользовательского интерфейса через стандартный API.
Роли, имена, ценности, состояния
MSAA передает информацию, отправляя небольшие фрагменты информации об элементах программы объекту вспомогательных технологий (AT). Четыре важных элемента информации, на которые опирается AT, чтобы помочь пользователям взаимодействовать с приложениями, - это роль, имя, значение и состояние элемента:
- Роль: Сообщает пользователям через AT, какой тип объекта представляет собой элемент управления, например кнопку или таблицу. В I Доступный метод для этого get_accRole.
- Имя: Предоставляет метку для элемента, например «Далее» на кнопке, которая перемещает пользователей на следующую страницу, или «Имя» для поля редактирования. В I Доступный метод для этого get_accName.
- Ценить: Предоставляет значение указанного объекта, например значение на полосе ползунка или информацию в редактируемом текстовом поле. Не все объекты имеют ценность. В I Доступный метод для этого get_accValue.
- Состояние: Определяет текущее состояние элемента управления, например, установлен флажок. State сообщает, можно ли выбрать элемент управления, сфокусировать его и / или другие типы изменяемых функций. В I Доступный метод для этого get_accState.
Microsoft предоставляет полный список элементов управления и их функций.[3]
Роль
Информация о ролях зависит от типа элемента управления пользовательского интерфейса, с которым разработчик хочет взаимодействовать. Например, если разработчик реализует кнопку, на которую можно нажимать, разработчик выберет Нажать кнопку как роль для реализации. В следующей таблице показан пример списка ролей MSAA и связанных с ними описаний.
Роль | Описание |
---|---|
ROLE_SYSTEM_APPLICATION | Объект представляет главное окно приложения. |
ROLE_SYSTEM_BUTTONMENU | Объект представляет собой кнопку, которая раскрывает меню. |
ROLE_SYSTEM_CARET | Объект представляет системную вставку. |
ROLE_SYSTEM_DIALOG | Объект представляет собой диалоговое окно или окно сообщения. |
ROLE_SYSTEM_DOCUMENT | Объект представляет окно документа. Окно документа всегда содержится в окне приложения. Эта роль распространяется только на Многодокументный интерфейс (MDI) и ссылается на объект, содержащий строку заголовка MDI. |
ROLE_SYSTEM_GRAPHIC | Объект представляет собой картинку. |
ROLE_SYSTEM_LIST | Объект представляет собой список, позволяющий пользователю выбрать один или несколько элементов. |
ROLE_SYSTEM_MENUBAR | Объект представляет строку меню (расположенную под строкой заголовка окна), из которой меню выбираются пользователем. |
ROLE_SYSTEM_PROGRESSBAR | Объект представляет собой индикатор выполнения, динамически показывающий пользователю процент завершения выполняемой операции. Этот элемент управления не требует ввода данных пользователем. |
ROLE_SYSTEM_PUSHBUTTON | Объект представляет собой кнопочный элемент управления. |
ROLE_SYSTEM_RADIOBUTTON | Объект представляет собой кнопку выбора, также называемую переключателем. Это один из группы взаимоисключающих вариантов. Предполагается, что все объекты с одним родителем и этим атрибутом являются частью единой взаимоисключающей группы. Используйте объекты ROLE_SYSTEM_GROUPING, чтобы разделить их на отдельные группы. |
ROLE_SYSTEM_SCROLLBAR | Объект представляет собой вертикальную или горизонтальную полосу прокрутки, которая является частью клиентской области или используется в элементе управления. |
ROLE_SYSTEM_TITLEBAR | Объект представляет собой заголовок или строку заголовка для окна. |
ROLE_SYSTEM_TOOLBAR | Объект представляет собой панель инструментов, которая представляет собой группу элементов управления, обеспечивающую легкий доступ к часто используемым функциям. |
ROLE_SYSTEM_WINDOW | Объект представляет собой рамку окна, которая содержит дочерние объекты, такие как строка заголовка, клиент и другие объекты, содержащиеся в окне. В MSAA этот оконный объект часто эквивалентен HWND объект в Windows. |
Имя
Имена для элементов в приложении назначаются разработчиком в коде. Многие объекты, такие как значки, меню, флажки, поля со списком и другие элементы управления, имеют метки, которые отображаются для пользователей. Любая метка, отображаемая пользователям в элементе управления (например, кнопка), является значением по умолчанию для свойства name объекта. Убедитесь, что Имя объекта имеет смысл для пользователя и правильно описывает элемент управления. Свойство Name не должно включать информацию о роли или типе элемента управления, например кнопку или список, иначе оно будет конфликтовать с текстом из свойства роли (полученного из функции GetRoleText API MSAA).
Ценить
Значение используется, когда разработчик хочет вернуть информацию от объектов в виде строки. Значение может быть возвращено для объектов, в которых содержатся проценты, целые числа, текстовая или визуальная информация. Например, значения свойств, возвращаемые полосой прокрутки и доступными объектами полосы прокрутки, могут указывать проценты в строках.
Не всем объектам присвоено значение.
Состояние
Свойство State описывает статус объекта в данный момент времени. Microsoft Active Accessibility обеспечивает константы состояния объекта, определенные в oleacc.h, которые объединяются для определения состояния объекта. Если возвращаются предопределенные значения состояния, клиенты используют GetStateText для получения локализованной строки, описывающей состояние. Все объекты поддерживают государственную собственность.
Проблемы и ограничения
Microsoft разработала объектную модель Active Accessibility во время и после выпуска Windows 95. Модель основана на ролях, каждая роль представляет собой тип элемента пользовательского интерфейса. Эти роли ограничены элементами пользовательского интерфейса, которые обычно используются в данный момент. Например, не существует текстовой объектной модели, помогающей вспомогательным технологиям работать с разделенными кнопками, которые объединяют несколько элементов пользовательского интерфейса в один. MSAA не пытается представить стилизованный текст, например текст разметки или же богатый текст документы. Хотя в MSAA все еще есть свойство Value, он может содержать только простой текст без стиля в своем значении. В то время считалось, что Microsoft Текстовая объектная модель (MS-TOM) больше подходит для выражения атрибутов форматированного текста. Однако сложность MS-TOM и ограниченное первоначальное внедрение за пределами Microsoft затрудняли доступ к форматированному тексту.
Еще одно ограничение связано с перемещением по объектной модели. MSAA представляет пользовательский интерфейс как иерархию доступных объектов аналогично оконному менеджеру Windows. Клиенты переходят от одного доступного объекта к другому с помощью метода IAccessible :: accNavigate. Однако серверы реализовали accNavigate непредсказуемым образом, а зачастую и вовсе нет. Однако клиенты должны иметь возможность работать со всеми подходами для любого сервера MSAA. Эта неоднозначность означает дополнительную работу для разработчиков клиента, а сложность может способствовать возникновению проблем в зависимости от реализации сервера.
Поскольку IAccessible является двоичным интерфейсом на основе COM, он неизменяем и не может быть изменен без создания другого интерфейса. В результате вы не можете предоставлять новые роли, поведение или свойства через существующую объектную модель на основе IAccessible. Хотя он задуман как общий подмножество информации о базовых элементах пользовательского интерфейса, оказалось, что его сложно расширить, чтобы включить информацию о новых методах взаимодействия.
Доступность
Изначально MSAA была доступна как надстройка к Windows 95. Она была интегрирована со всеми последующими версиями Windows.
Связанные технологии
Microsoft UI Automation (МАУ): Преемником MSAA стала автоматизация пользовательского интерфейса (UIA). Однако, поскольку все еще существуют приложения на основе MSAA, используются мосты для обеспечения связи между UI Automation и приложениями MSAA. Таким образом, информация может быть разделена между двумя API, были разработаны прокси-сервер MSAA-to-UI Automation и мост UI Automation-MSAA. Первый - это компонент, который использует информацию MSAA и делает ее доступной через API клиента UI Automation. Последний позволяет клиентским приложениям использовать приложения доступа MSAA, реализующие автоматизацию пользовательского интерфейса.
Доступные полнофункциональные интернет-приложения (WAI-ARIA): существует общее сопоставление атрибутов ARIA со свойствами MSAA.[4]
IAccessible2: MSAA обеспечивает основу IAccessible2. IAccessible2 использует работу, проделанную с MSAA, и добавляет дополнительные функции.
API автоматизации Windows: Начиная с Windows 7, Microsoft объединяет свои технологии доступности в структуру, называемую Windows Automation API. MSAA будет частью этой структуры.
Реализации Microsoft Active Accessibility
Active Accessibility доступна для разработчиков во всех версиях Windows, начиная с Windows 95. С момента своего первого появления MSAA использовалась как способ добавления поддержки программного доступа к пользовательскому интерфейсу для многих бизнес-приложений и приложений для потребителей, включая Microsoft. Internet Explorer, Mozilla Firefox, Microsoft Office и т. д. В дополнение к вспомогательным средствам, например программам чтения с экрана, лупам, Дополнительное и альтернативное общение (AAC), технология использовалась Автоматизация тестирования программное обеспечение, такое как QuickTest Pro, Functional Tester и SilkTest.
Дополнительные реализации MSAA в приложениях и продуктах AT можно найти, выполнив поиск на сайтах Microsoft Accessibility или на сайте AT Information.[5][6][7]
Рекомендации
- ^ Список рассылки NFB-RD, февраль 1996 г., "Доступность OLAE [sic]"
- ^ Поддерживаемые платформы: активная доступность - MSDN
- ^ Сеть разработчиков Microsoft (MSDN): https://msdn.microsoft.com/en-us/library/bb773173(VS.85).aspx Элементы управления Windows.
- ^ Сеть разработчиков Microsoft (MSDN): Спецификация автоматизации пользовательского интерфейса
- ^ Microsoft: Специальные возможности в продуктах Microsoft.
- ^ Microsoft: История приверженности Microsoft доступности.
- ^ Центр трассировки: Ссылки на информацию о вспомогательных технологиях В архиве 2012-07-23 в Archive.today.