Microsoft Active Accessibility

редактировать

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.

Содержание
  • 1 История
  • 2 История версий
  • 3 Мотивация и цели
  • 4 Технический обзор
  • 5 Доступные объекты
  • 6 Роли, имена, значения, состояния
    • 6.1 Роль
    • 6.2 Имя
    • 6.3 Значение
    • 6.4 Состояние
  • 7 Проблемы и ограничения
  • 8 Доступность
  • 9 Сопутствующие технологии
  • 10 Реализации Microsoft Active Accessibility
  • 11 Ссылки
  • 12 Внешние ссылки
История

Активная доступность изначально называлась 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 есть собственный процесс.

Microsoft Active Accessibility

UI представлен как иерархия доступных объектов; изменения и действия представлены как WinEvents.

Доступные объекты

Доступный объект является центральным интерфейсом MSAA и представлен COM-интерфейсом IAccessible и целым числом ChildId. Это позволяет приложениям отображать древовидную структуру, которая представляет структуру пользовательского интерфейса. Каждый элемент этого дерева предоставляет набор свойств и методов, которые позволяют управлять соответствующим элементом пользовательского интерфейса. Клиенты MSAA могут получить доступ к программной информации пользовательского интерфейса через стандартный API.

Роли, имена, значения, состояния

MSAA передает информацию, отправляя небольшие порции информации об элементах программы объекту вспомогательных технологий (AT). Четыре важных элемента информации, на которые AT полагается, чтобы помочь пользователям взаимодействовать с приложениями, - это роль, имя, значение и состояние элемента:

  • Роль : сообщает пользователям через AT, какой тип объекта представляет собой элемент управления, например кнопку или стол. Для этого используется метод IAccessible: get_accRole.
  • Name : предоставляет метку для элемента, например Next на кнопке, которая перемещает пользователей на следующую страницу, или First Name для поля редактирования.. Для этого используется метод IAccessible: get_accName.
  • Value : Предоставляет значение указанного объекта, например значение на полосе ползунка или информацию в редактируемом текстовом поле. Не все объекты имеют ценность. Для этого используется метод IAccessible: get_accValue.
  • State : определяет текущее состояние элемента управления, например, установлен флажок. State сообщает, можно ли выбрать элемент управления, сфокусировать его и / или другие типы изменяемых функций. Метод IAccessible для этого - get_accState.

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 будет частью этой структуры.

Реализации Microsoft Active Accessibility

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.

Ссылки
  1. ^Список рассылки NFB-RD, февраль 1996 г., «Доступность OLAE [sic]»
  2. ^Поддерживаемые платформы: Активная доступность - MSDN
  3. ^Microsoft Developer Network (MSDN): https://msdn.microsoft.com/en-us/library/bb773173 (VS.85).aspx Элементы управления Windows.
  4. ^Microsoft Developer Network (MSDN): Спецификация автоматизации пользовательского интерфейса
  5. ^Microsoft: Доступность в продуктах Microsoft.
  6. ^Microsoft: История приверженности Microsoft делу Доступность.
  7. ^Центр трассировки: Информационные ссылки по вспомогательным технологиям Архивировано 23.07.2012 в Archive.today.
Внешние ссылки
Последняя правка сделана 2021-05-30 10:10:39
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте