В чем разница между IAccessible, IAccessible2, UIAutomation и MSAA? - PullRequest
2 голосов
/ 12 марта 2019

Я начинаю работу над доступностью, и меня немного смущают различные технологии, с которыми я столкнулся.

В чем разница между IAccessible и IAccessible2? Первоначально я думал, что IAccessible2 может быть более новой версией IAccessible, но при дальнейших исследованиях похоже, что это на самом деле сделано конкурентами Microsoft. Википедия говорит: «Она позиционируется как альтернатива новому API автоматизации пользовательского интерфейса Microsoft». И как MSAA вписывается в это?

Может ли кто-нибудь разъяснить разницу между IAccessible, IAccessible2, API автоматизации пользовательского интерфейса и MSAA? И почему одно может быть предпочтительнее другого?

1 Ответ

1 голос
/ 12 марта 2019

Microsoft Active Accessibility (MSAA) был оригинальным API доступа Microsoft; версия 1 MSAA была на выпуске дополнения для Windows 95. MSAA был ограничен в отношении набора ролей, имен, значений и состояний поддерживается; это означало, что набор графических компонентов, метаданные о доступности которых могли бы передаваться вспомогательным технологиям (например, программам чтения с экрана), был ограничен.

[IAccessible] (https://docs.microsoft.com/en-us/previous-versions//ms696097(v=vs.85) является частью MSAA:

Интерфейс IAccessible представляет собой набор методов, которые предоставляют наиболее распространенные атрибуты и поведения широкого диапазона элементов пользовательского интерфейса (UI). Элемент пользовательского интерфейса - это элемент управления, такой как меню или кнопка, который является частью пользовательского интерфейса. Доступный объект - это элемент пользовательского интерфейса, который имеет значимый интерфейс IAccessible .

Ограничения MSAA подстегнули разработку IAccessible2 (первоначально в IBM), которая должна была заполнить пробелы в MSAA, такие как "поддержка текстовых элементов управления, таблиц, гиперссылок и отношений между доступными объектами «. Он был согласован с Accessibility Toolkit (ATK) в Linux (особенно в Gnome). IAccessible2 дополняет MSAA, а не заменяет его.

Microsoft UI Automation является собственным преемником Microsoft для MSAA. См. Автоматизация пользовательского интерфейса и активная доступность :

Microsoft Active Accessibility - это устаревший API, который был представлен в Windows 95 и был разработан для обеспечения доступности приложений Windows. Microsoft UI Automation - это новая модель доступности для Windows, предназначенная для удовлетворения потребностей в продуктах вспомогательных технологий и инструментах автоматизированного тестирования. Автоматизация пользовательского интерфейса предлагает множество улучшений по сравнению с Microsoft Active Accessibility.

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

Одной из областей, в которых эти новые API доступности имели решающее значение, была поддержка доступности для многофункциональных интернет-приложений. Разработчики спецификации WAI-ARIA W3C рассмотрели API-интерфейсы доступности, которые существовали на различных платформах, и сопоставили доступные роли, состояния и свойства с их предлагаемыми аналогами в спецификации WAI-ARIA. Это включало создание таблиц отображения , которые можно найти в Руководстве пользователя по внедрению WAI-ARIA 1.0. См. Также UI Automation для W3C Accessible Rich Internet Applications. Спецификация в документации Microsoft. В Microsoft Edge Microsoft перешла с MSAA на UI Automation .

...