Сравнение специальных возможностей и автоматизации пользовательского интерфейса Майкрософт
API автоматизации Windows состоит из двух технологий: Microsoft Active Accessibility и Microsoft UI Automation. Microsoft Active Accessibility — это устаревшая технология специальных возможностей, которая была представлена в качестве надстройки платформы для Windows 95, а автоматизация пользовательского интерфейса — это более новая, более эффективная технология, которая преодолевает ограничения, присущие Microsoft Active Accessibility.
В этом разделе приведены основные различия между специальными возможностями Microsoft Active и автоматизацией пользовательского интерфейса. Он содержит следующие разделы:
- основные принципы проектирования
- Шаблоны свойств и элементов управления
- ролей MSAA и шаблонов элементов управления автоматизации пользовательского интерфейса
- навигации по объектной модели
- расширяемость объектной модели
- переход с MSAA
- выбор специальных возможностей Майкрософт, автоматизации пользовательского интерфейса или IAccessibleEx
- связанные разделы
Основные принципы проектирования
Хотя microsoft Active Accessibility и ui Automation являются двумя разными технологиями, основные принципы проектирования похожи. Цель обоих технологий — предоставить широкие сведения о элементах пользовательского интерфейса, используемых в приложениях Windows. Разработчики средств специальных возможностей могут использовать эту информацию для создания программного обеспечения, которое делает приложения, работающие в Windows более доступными для людей с зрением, слухом или нарушениями движения.
Специальные возможности Microsoft Active и автоматизация пользовательского интерфейса предоставляют объектную модель пользовательского интерфейса в виде иерархического дерева, корняемого на рабочем столе. Microsoft Active Accessibility представляет отдельные элементы пользовательского интерфейса как доступные объекты, а автоматизация пользовательского интерфейса представляет их как элементы автоматизации . Оба относятся к средству специальных возможностей или программе автоматизации программного обеспечения в качестве клиента. Однако Microsoft Active Accessibility относится к приложению или элементу управления, предлагающим пользовательский интерфейс для специальных возможностей, как сервер сервера, в то время как автоматизация пользовательского интерфейса называется поставщиком .
Свойства и шаблоны элементов управления
Microsoft Active Accessibility предлагает один интерфейс объектной модели компонента (COM) с фиксированным, небольшим набором свойств. Служба автоматизации пользовательского интерфейса предоставляет более широкий набор свойств, а также набор расширенных интерфейсов, называемых шаблонами управления для управления доступными объектами с помощью специальных возможностей Microsoft Active.
Дополнительные сведения см. в обзоре свойств автоматизации пользовательского интерфейса и шаблонах элементов управления автоматизации пользовательского интерфейса.
Роли MSAA и шаблоны элементов управления автоматизации пользовательского интерфейса
Корпорация Майкрософт разработала объектную модель Microsoft Active Accessibility примерно в то же время, что и Windows 95. Модель основана на "ролях", определенных десять лет назад, и вы не можете поддерживать новое поведение пользовательского интерфейса или объединить две или более ролей вместе. Например, нет текстовой объектной модели, чтобы помочь вспомогательным технологиям работать с сложным веб-содержимым. Автоматизация пользовательского интерфейса преодолевает эти ограничения, введя шаблоны элементов управления, которые позволяют объектам поддерживать несколько ролей, а шаблон управления "Автоматизация пользовательского интерфейса" text предлагает полнофункциональная текстовая объектная модель.
Навигация по объектной модели
Другое ограничение доступности Microsoft Active Включает навигацию по объектной модели. Microsoft Active Accessibility представляет пользовательский интерфейс в виде иерархии доступных объектов. Клиенты перемещаются из одного объекта со специальным доступом к другому с помощью интерфейсов и методов, доступных из доступного объекта. Серверы могут предоставлять дочерние элементы объекта со свойствами интерфейса IAccess или стандартным интерфейсом IEnumVARIANT COM. Однако клиенты должны иметь возможность работать с обоими подходами для любого сервера. Эта неоднозначность означает дополнительную работу для клиентских реализации и неработающие объектные модели для серверных реализации.
Автоматизация пользовательского интерфейса представляет пользовательский интерфейс в виде иерархического дерева элементов автоматизации и предоставляет единый интерфейс для навигации по дереву. Клиенты могут настроить представление элементов в дереве, определив область и фильтрацию.
Расширяемость объектной модели
Свойства и функции Microsoft Active Специальные возможности не могут быть расширены без нарушения или изменения спецификации интерфейса COM I Access. Результатом является то, что новое поведение элемента управления невозможно предоставить через объектную модель; он, как правило, является статическим.
При создании новых элементов пользовательского интерфейса разработчики приложений могут вводить пользовательские свойства, шаблоны элементов управления и события для описания новых элементов. Дополнительные сведения см. в разделе Пользовательские свойства, события и шаблоны элементов управления.
Переход из MSAA
Платформа API автоматизации Windows обеспечивает поддержку перехода с серверов Microsoft Active Accessibility на поставщики автоматизации пользовательского интерфейса. Интерфейс IAccessEx позволяет добавлять определенные свойства автоматизации пользовательского интерфейса и шаблоны элементов управления в устаревшие серверы Microsoft Active Accessibility без необходимости переписать всю реализацию. Интерфейс IAccessEx также позволяет клиентам Microsoft Active Active Accessibility напрямую получать доступ к интерфейсам поставщика автоматизации пользовательского интерфейса, а не через клиентские интерфейсы автоматизации пользовательского интерфейса. Дополнительные сведения см. в интерфейсе IAccessibleEx.
Выбор специальных возможностей Майкрософт, автоматизации пользовательского интерфейса или I AccessEx
В этом разделе показано, какое решение API службы автоматизации Windows можно использовать для реализации продукта вспомогательных технологий или сделать приложение доступным для вспомогательных технологий.
Новые приложения и элементы управления
Если вы разрабатываете новое приложение или элемент управления, корпорация Майкрософт рекомендует использовать автоматизацию пользовательского интерфейса. Хотя доступность Microsoft Active Active Может быть проще реализовать в краткосрочной перспективе, ограничения, присущие этой технологии, такие как ее стареющая объектная модель и неспособность поддерживать новые функции пользовательского интерфейса или роли слияния, делает его более сложным и дорогостоящим в долгосрочной перспективе. Эти ограничения становятся особенно очевидными при внедрении новых элементов управления.
Объектная модель автоматизации пользовательского интерфейса проще использовать и является более гибкой, чем у Microsoft Active Accessibility. Элементы автоматизации пользовательского интерфейса отражают эволюцию пользовательских интерфейсов, а разработчики могут определять пользовательские шаблоны элементов управления автоматизации пользовательского интерфейса, свойства и события.
Microsoft Active Специальные возможности, как правило, медленно выполняются для клиентов, которые выполняются вне процесса. Чтобы повысить производительность, разработчики программ специальных возможностей часто выбирают перехват и запуска своих программ в целевом процессе приложения: чрезвычайно сложный и рискованный подход. Автоматизация пользовательского интерфейса гораздо проще реализовать для клиентов вне процесса и обеспечивает гораздо более высокую производительность и надежность.
Существующие реализации активных специальных возможностей Майкрософт
Если вы обновляете существующее приложение или элемент управления на основе специальных возможностей Microsoft Active, рассмотрите возможность добавления поддержки автоматизации пользовательского интерфейса, реализуя интерфейс IAccessibleEx. Во-первых, убедитесь, что приложение или элемент управления соответствуют следующим требованиям:
- Базовая иерархия сервера специальных возможностей Майкрософт для доступных объектов должна быть хорошо организована и без ошибок. IAccessibleEx не удается устранить проблемы с существующими иерархиями объектов со специальными возможностями.
- Реализация IAccessibleEx должна соответствовать спецификации Microsoft Active Accessibility и спецификации автоматизации пользовательского интерфейса. Корпорация Майкрософт предоставляет набор средств для проверки соответствия обеим спецификациям. Дополнительные сведения см. в разделе Тестирование специальных возможностей.
Если одно из этих требований не соответствует, рассмотрите возможность реализации автоматизации пользовательского интерфейса в собственном коде. Вы можете сохранить устаревшие реализации сервера специальных возможностей Майкрософт для обеспечения обратной совместимости, если это необходимо. С точки зрения клиента автоматизации пользовательского интерфейса нет разницы между поставщиками службы автоматизации пользовательского интерфейса и серверами Microsoft Active Accessibility, реализующими IAccessEx.
Дополнительные сведения см. в интерфейсе IAccessibleEx.
Связанные разделы