Microsoft Active Accessibility (MSAA ) - это интерфейс прикладного программирования (API) для доступности пользовательского интерфейса. MSAA была представлена как надстройка платформы к Microsoft Windows 95 в 1997 году. MSAA разработана, чтобы помочь продуктам Assistive Technology (AT) взаимодействовать со стандартным и пользовательским интерфейсом (UI) приложения (или операционной системы), а также для доступа, идентификации и управления элементами UI приложения. Продукты AT работают с приложениями с поддержкой MSAA, чтобы обеспечить лучший доступ для людей с физическими или когнитивными проблемами, нарушениями или ограниченными возможностями. Некоторые примеры продуктов AT - программы чтения с экрана для пользователей с ограниченным зрением, экранные клавиатуры для пользователей с ограниченным физическим доступом или дикторы для пользователей с ограниченным слухом. MSAA также может использоваться для инструментов автоматизированного тестирования и компьютерных обучающих приложений.
Текущая и последняя спецификация MSAA находится в части Microsoft UI Automation Спецификация Community Promise.
Активная доступность изначально называлась OLE Accessibility, и это наследие отражено в именах ее двоичных компонентов, таких как oleacc.dll
и заголовочный файл oleacc.h
, который содержит определения и объявления. В рамках продвижения бренда Microsoft ActiveX в марте 1996 года OLE Accessibility была переименована в ActiveX Accessibility (иногда называемая AXA) и представлена как таковая на конференции Microsoft Professional Developers Conference в Сан-Франциско в марте 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 (UIA), который был представлен в Windows Vista и .NET Framework 3.0.
Были выпущены следующие версии Active Accessibility:
Версия | Описание |
---|---|
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 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 есть собственный процесс.
UI представлен как иерархия доступных объектов; изменения и действия представлены как WinEvents.
Доступный объект является центральным интерфейсом MSAA и представлен COM-интерфейсом IAccessible и целым числом ChildId. Это позволяет приложениям отображать древовидную структуру, которая представляет структуру пользовательского интерфейса. Каждый элемент этого дерева предоставляет набор свойств и методов, которые позволяют управлять соответствующим элементом пользовательского интерфейса. Клиенты MSAA могут получить доступ к программной информации пользовательского интерфейса через стандартный API.
MSAA передает информацию, отправляя небольшие порции информации об элементах программы объекту вспомогательных технологий (AT). Четыре важных элемента информации, на которые AT полагается, чтобы помочь пользователям взаимодействовать с приложениями, - это роль, имя, значение и состояние элемента:
Microsoft предоставляет полный список элементов управления и их функций.
Информация о ролях зависит от типа пользовательского интерфейса. контроль, с которым разработчик хочет взаимодействовать. Например, если разработчик реализует кнопку, на которую можно нажимать, разработчик выберет Pushbutton в качестве роли для реализации. В следующей таблице показан пример списка ролей 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 Text Object Model (MS-TOM) будет более подходящей для выражения атрибутов форматированного текста. Однако сложность MS-TOM и ограниченное первоначальное внедрение за пределами Microsoft затрудняли доступ к форматированному тексту.
Еще одно ограничение связано с навигацией по объектной модели. MSAA представляет пользовательский интерфейс как иерархию доступных объектов аналогично оконному менеджеру Windows. Клиенты переходят от одного доступного объекта к другому с помощью метода IAccessible :: accNavigate. Однако серверы реализовали accNavigate непредсказуемым образом, а зачастую и вовсе нет. Однако клиенты должны иметь возможность работать со всеми подходами для любого сервера MSAA. Эта неоднозначность означает дополнительную работу для разработчиков клиента, а сложность может способствовать возникновению проблем в зависимости от реализации сервера.
Поскольку IAccessible является двоичным интерфейсом на основе COM, он неизменяем и не может быть изменен без создания другого интерфейса. В результате вы не можете предоставлять новые роли, поведение или свойства через существующую объектную модель на основе IAccessible. Хотя он задуман как общий подмножество информации о базовых элементах пользовательского интерфейса, оказалось, что его сложно расширить, чтобы включить информацию о новых методах взаимодействия.
MSAA изначально была доступна как надстройка к Windows 95. Она была интегрирована со всеми последующими версиями Windows.
Microsoft UI Automation (UIA) : Преемником MSAA стала автоматизация пользовательского интерфейса (UIA). Однако, поскольку все еще существуют приложения на основе MSAA, используются мосты для обеспечения связи между UI Automation и приложениями MSAA. Таким образом, информация может быть разделена между двумя API, были разработаны прокси-сервер MSAA-to-UI Automation и мост UI Automation-to-MSAA. Первый - это компонент, который использует информацию MSAA и делает ее доступной через API клиента UI Automation. Последний позволяет клиентским приложениям использовать приложения доступа MSAA, реализующие автоматизацию пользовательского интерфейса.
Доступные полнофункциональные Интернет-приложения (WAI-ARIA): существует общее сопоставление атрибутов ARIA со свойствами MSAA.
IAccessible2 : MSAA обеспечивает основу IAccessible2. IAccessible2 использует работу, проделанную с MSAA, и добавляет дополнительные функции.
Windows Automation API : Начиная с Windows 7, Microsoft объединяет свои технологии доступности в структуру, называемую Windows Automation API. MSAA будет частью этой структуры.
Active Accessibility доступна для разработчиков во всех версиях Windows, начиная с Windows 95. С момента своего первого появления MSAA использовалась как способ добавления поддержки программного доступа в пользовательский интерфейс для многих коммерческих и потребительских приложений, включая Microsoft Internet Explorer, Mozilla Firefox, Microsoft Office и т. д. В дополнение к вспомогательным средствам доступа, таким как программы чтения с экрана, экранные лупы, устройства Augmentative and Alternative Communication (AAC), технология использовалась в программном обеспечении Test automation, например QuickTest Pro, Functional Tester и SilkTest.
Дополнительные реализации MSAA в приложениях и продуктах AT можно найти, выполнив поиск на сайтах Microsoft Accessibility или на веб-сайте AT Information.