Активная доступность Microsoft
Microsoft Active Accessibility ( MSAA ) — это интерфейс прикладного программирования (API) для обеспечения доступности пользовательского интерфейса. MSAA был представлен как надстройка платформы к Microsoft Windows 95 в 1997 году. MSAA разработан, чтобы помочь продуктам вспомогательных технологий (AT) взаимодействовать со стандартными и настраиваемыми элементами пользовательского интерфейса (UI) приложения (или операционной системы), а также для доступа, идентификации и управления элементами пользовательского интерфейса приложения. Продукты AT работают с приложениями с поддержкой MSAA, чтобы обеспечить лучший доступ для людей, испытывающих физические или когнитивные трудности, нарушения или инвалидность. Некоторыми примерами продуктов AT являются программы чтения с экрана для пользователей с ограниченным зрением, экранные клавиатуры для пользователей с ограниченным физическим доступом или устройства диктора для пользователей с ограниченным слухом. MSAA также можно использовать для инструментов автоматического тестирования и компьютерных обучающих приложений.
Текущая и новейшая спецификация MSAA находится в спецификации обещаний сообщества Microsoft UI Automation .
История [ править ]
Активная доступность первоначально называлась OLE Accessibility. [1] и это наследие отражено в названиях его бинарных компонентов, таких как 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 Software Developers Kit (SDK) версии 1.0. В комплект SDK вошли документация, библиотеки программирования, примеры исходного кода и распространяемый комплект (RDK), который поставщики доступных технологий могли включить в свои продукты. В состав RDK вошли обновленные компоненты операционной системы для Microsoft Windows 95 . Начиная с Windows 98 и Windows NT 4.0 с пакетом обновления 4, MSAA встроен во все версии платформы Windows и со временем получает периодические обновления и исправления.
Программное предоставление приложений вспомогательных технологий в Windows исторически обеспечивалось через MSAA. Однако новые приложения теперь используют Microsoft UI Automation (UIA), которая была представлена в Windows Vista и .NET Framework 3.0 .
История версий [ править ]
Были выпущены следующие версии Active Accessibility: [2]
Версия | Описание |
---|---|
1.0 | Исходный выпуск дополнения для Windows 95. RDK поддерживался только в английской версии операционной системы. (1997) |
1.1 | Входит в состав Windows 98 . |
1.2.х | Первая версия MSAA, доступная как для английской, так и для международных версий Windows. (1998) |
1.3.х | Добавлена дополнительная поддержка большего количества языков. Представлена вспомогательная DLL (oleaccrc.dll) для международной библиотеки текстовых ресурсов. Позже компоненты системы были интегрированы в Windows NT 4.0 Service Pack 6 и более поздние версии, Windows 98, Windows 2000 и Windows Me. (1999) |
2.0 | Первая крупная версия MSAA, добавляющая поддержку динамических аннотаций и текста MSAA. Эта версия была интегрирована в Windows XP . В последующие версии Windows в структуру MSAA были внесены незначительные изменения. Версия 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). API автоматизации Windows включен в Windows 7 и доступен для Windows Vista и XP (2009 г.). |
Мотивация и цели [ править ]
Мотивирующим фактором разработки MSAA было обеспечение доступного и бесперебойного механизма связи между базовой операционной системой или приложениями и продуктами вспомогательных технологий.
Программная цель MSAA — позволить элементам управления Windows предоставлять базовую информацию, такую как имя, расположение на экране или тип элемента управления, а также информацию о состоянии, такую как видимость, включено или выбрано.
Технический обзор [ править ]
MSAA основано на объектной модели компонентов (COM). COM определяет механизм взаимодействия приложений и операционных систем.
На рис. 1 показана высокоуровневая архитектура MSAA.
Приложения (например, текстовый процессор) в MSAA называются серверами, поскольку они предоставляют или обслуживают информацию о своих пользовательских интерфейсах (UI). Инструменты специальных возможностей (например, программы чтения с экрана) в MSAA называются клиентами, поскольку они потребляют информацию пользовательского интерфейса приложения и взаимодействуют с ней.
Системный компонент платформы MSAA, Oleacc.dll, помогает в обмене данными между инструментами обеспечения доступности (клиентами) и приложениями (серверами). Граница кода указывает программные границы между приложениями, которые предоставляют информацию о доступности пользовательского интерфейса, и инструментами специальных возможностей, которые взаимодействуют с пользовательским интерфейсом от имени пользователей. Граница также может быть границей процесса, если у клиентов MSAA есть собственный процесс.
Пользовательский интерфейс представлен как иерархия доступных объектов; изменения и действия представлены как WinEvents.
Доступные объекты [ править ]
Доступный объект является центральным интерфейсом MSAA и представлен IAccessible COM-интерфейс и целое число Идентификатор ребенка . Это позволяет приложениям отображать древовидную структуру, которая представляет структуру пользовательского интерфейса. Каждый элемент этого дерева предоставляет набор свойств и методов, которые позволяют манипулировать соответствующим элементом пользовательского интерфейса. Клиенты MSAA могут получить доступ к программной информации пользовательского интерфейса через стандартный API.
Роли, имена, ценности, состояния [ править ]
MSAA передает информацию, отправляя небольшие порции информации об элементах программы объекту вспомогательных технологий (AT). Четыре критически важных фрагмента информации, на которые опирается AT, помогая пользователям взаимодействовать с приложениями, — это роль, имя, значение и состояние элемента:
- Роль : сообщает пользователям через AT, какой тип объекта представляет собой элемент управления, например кнопка или таблица. Доступный метод для этого: get_accRole .
- Имя : предоставляет метку для элемента, например «Далее» для кнопки, которая перемещает пользователей на следующую страницу, или «Имя» для поля редактирования. Доступный метод для этого: get_accName .
- Значение : предоставляет значение указанного объекта, например значение на панели ползунка или информацию в редактируемом текстовом поле. Не все объекты имеют ценность. Доступный метод для этого: get_accValue .
- Состояние : определяет текущее состояние элемента управления, например, установлен ли флажок. Состояние сообщает, можно ли выбрать элемент управления, сфокусировать его и/или использовать другие типы изменяемых функций. Доступный метод для этого: 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 не должно включать информацию о роли или типе элемента управления, например кнопку или список, иначе оно будет конфликтовать с текстом из свойства роли (полученным из функции 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. Эта двусмысленность означает дополнительную работу для разработчиков клиента, а сложность может привести к проблемам в зависимости от реализации сервера.
Будучи двоичным интерфейсом на основе COM, IAccessible является неизменяемым и не может быть изменен без создания другого интерфейса. В результате вы не можете предоставлять новые роли, поведение или свойства через существующую объектную модель на основе IAccessible. Хотя предполагалось, что это общий подмножество информации о базовых элементах пользовательского интерфейса, оказалось, что его сложно расширить, включив в него информацию о новых методах взаимодействия.
Наличие [ править ]
MSAA изначально был доступен как надстройка к Windows 95. Он был интегрирован со всеми последующими версиями Windows.
Сопутствующая технология [ править ]
Microsoft UI Automation (UIA) . Преемником MSAA стала автоматизация пользовательского интерфейса (UIA). Однако, поскольку приложения на основе MSAA все еще существуют, для обеспечения связи между автоматизацией пользовательского интерфейса и приложениями MSAA используются мосты. Таким образом, информация может быть разделена между двумя API, были разработаны прокси-сервер автоматизации MSAA-UI и мост автоматизации пользовательского интерфейса-MSAA. Первый — это компонент, который использует информацию MSAA и делает ее доступной через клиентский API автоматизации пользовательского интерфейса. Последний позволяет клиентским приложениям использовать приложения доступа MSAA, реализующие автоматизацию пользовательского интерфейса.
Доступные многофункциональные интернет-приложения (WAI-ARIA). Существует общее сопоставление атрибутов ARIA со свойствами MSAA. [4]
IAccessible2 : MSAA обеспечивает корни IAccessible2. IAccessible2 использует работу, проделанную над MSAA, и добавляет дополнительные функции.
Windows Automation API . Начиная с Windows 7, Microsoft объединяет свои технологии специальных возможностей в рамках платформы под названием Windows Automation API. MSAA будет частью этой структуры.
Active Реализации Accessibility Microsoft
Активные специальные возможности доступны разработчикам во всех версиях 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 [так в оригинале]»
- ^ Поддерживаемые платформы: активная доступность — MSDN.
- ^ Сеть разработчиков Microsoft (MSDN): https://msdn.microsoft.com/en-us/library/bb773173(VS.85).aspx Элементы управления Windows .
- ^ Сеть разработчиков Microsoft (MSDN): Спецификация автоматизации пользовательского интерфейса
- ^ Microsoft: Доступность продуктов Microsoft .
- ^ Microsoft: История приверженности Microsoft обеспечению доступности .
- ^ Центр отслеживания: информационные ссылки о вспомогательных технологиях. Архивировано 23 июля 2012 г. на archive.today .