Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Microsoft Active Accessibility ( MSAA ) - это интерфейс прикладного программирования (API) для обеспечения доступности пользовательского интерфейса. MSAA была представлена ​​как надстройка платформы к Microsoft Windows 95 в 1997 году. MSAA разработана, чтобы помочь продуктам Assistive Technology (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 стала Active Accessibility и часто сокращалась до MSAA.

Изначально MSAA была доступна в апреле 1997 года как часть пакета разработчика программного обеспечения Microsoft Active Accessibility (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]

Мотивация и цели [ править ]

Мотивирующим фактором разработки MSAA было создание доступного и бесшовного механизма связи между базовой операционной системой или приложениями и продуктами со вспомогательными технологиями.

Программная цель MSAA - позволить элементам управления Windows предоставлять основную информацию, такую ​​как имя, расположение на экране или тип элемента управления, а также информацию о состоянии, такую ​​как видимость, включен или выбран.

Технический обзор [ править ]

MSAA основан на модели компонентных объектов (COM). COM определяет механизм взаимодействия приложений и операционных систем.

На рисунке 1 показана высокоуровневая архитектура MSAA.

Приложения (например, текстовый процессор) в MSAA называются серверами, потому что они предоставляют или обслуживают информацию о своих пользовательских интерфейсах (UI). Инструменты обеспечения доступности (например, программы чтения с экрана) в MSAA называются клиентами, поскольку они потребляют информацию пользовательского интерфейса из приложения и взаимодействуют с ней.

Системный компонент структуры MSAA, Oleacc.dll, помогает в обмене данными между инструментами обеспечения доступности (клиентами) и приложениями (серверами). Граница кода указывает программные границы между приложениями, которые предоставляют информацию о доступности пользовательского интерфейса, и инструментами доступности, которые взаимодействуют с пользовательским интерфейсом от имени пользователей. Граница также может быть границей процесса, если у клиентов MSAA есть свой собственный процесс.

Microsoft Active Accessibility

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

Доступные объекты [ править ]

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

Роли, имена, ценности, состояния [ править ]

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

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

Microsoft предоставляет полный список элементов управления и их функций. [3]

Роль [ править ]

Информация о ролях зависит от типа элемента управления пользовательского интерфейса, с которым разработчик хочет взаимодействовать. Например, если разработчик реализует кнопку, на которую можно нажимать, разработчик выберет Pushbutton в качестве роли для реализации. В следующей таблице показан примерный список ролей MSAA и связанных с ними описаний.

Имя [ редактировать ]

Имена для элементов в приложении назначаются в коде разработчиком. Многие объекты, такие как значки, меню, флажки, поля со списком и другие элементы управления, имеют метки, которые отображаются для пользователей. Любая метка, которая отображается для пользователей в элементе управления (например, кнопка), является значением по умолчанию для свойства имени объекта. Убедитесь, что имя объекта имеет смысл для пользователя и правильно описывает элемент управления. Свойство 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 (UIA) : преемником MSAA стала User Interface Automation (UIA). Однако, поскольку все еще существуют приложения на основе MSAA, для обеспечения связи между UI Automation и приложениями MSAA используются мосты. Таким образом, информация может быть разделена между двумя API, были разработаны прокси-сервер MSAA-to-UI Automation и мост UI Automation-to-MSAA. Первый - это компонент, который использует информацию MSAA и делает ее доступной через API клиента UI Automation. Последний позволяет клиентским приложениям, использующим приложения доступа MSAA, реализующие автоматизацию пользовательского интерфейса.

Доступные полнофункциональные интернет-приложения (WAI-ARIA): существует общее отображение атрибутов ARIA в свойства MSAA. [4]

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 и т. Д. В дополнение к вспомогательным средствам обеспечения доступности, таким как программы чтения с экрана, увеличители экрана, устройства расширенной и альтернативной связи (AAC), эта технология использовалась программным обеспечением для автоматизации тестирования , таким как QuickTest Pro, Functional Tester и SilkTest.

Дополнительные реализации MSAA в приложениях и продуктах AT можно найти, выполнив поиск на сайтах Microsoft Accessibility или на сайте AT Information. [5] [6] [7]

Ссылки [ править ]

  1. ^ NFB-RD список рассылки февраля 1996 , "OLAE [так] доступность"
  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 июля 2012 г. на сайте archive.today .

Внешние ссылки [ править ]

  • Официальный веб-сайт
  • История приверженности Microsoft доступности
  • Проверка доступности пользовательского интерфейса
  • МАУ Verify
  • Профили доступности в действии
  • Центр развития доступности