Поделиться через


Как работает активная доступность

Microsoft Active Accessibility предназначен для помощи технологиям вспомогательного доступа, называемым клиентами, взаимодействовать со стандартными и пользовательскими элементами пользовательского интерфейса других приложений и операционной системы. Клиент Microsoft Active Accessibility — это любая программа, которая использует microsoft Active Accessibility для доступа, идентификации или управления элементами пользовательского интерфейса приложения. Клиенты включают средства доступности, средства автоматического тестирования и некоторые обучающие программы на компьютере.

С помощью технологии Microsoft Active Accessibility клиентское приложение может:

  • Запрос сведений; Например, о элементе пользовательского интерфейса в определенном расположении.
  • Получение уведомлений при изменении сведений; например, когда элемент управления становится серым или при изменении текстовой строки.
  • Выполните действия, влияющие на интерфейс пользователя или содержимое документа, например, нажмите кнопку, раскройте меню и выберите команду меню.

Приложения, взаимодействующие с клиентами и предоставляющие сведения, называются серверами. Сервер использует Microsoft Active Accessibility для предоставления сведений о своих элементах пользовательского интерфейса клиентам. Любой элемент управления, модуль или приложение, использующее специальные возможности Майкрософт для предоставления сведений о пользовательском интерфейсе, считается сервером Microsoft Active Accessibility. Серверы взаимодействуют с клиентами, отправляя уведомления о событиях (например, вызов NotifyWinEvent) и отвечая на запросы клиентов на доступ к элементам пользовательского интерфейса (например, обработка сообщений WM_GETOBJECT, отправленных из OLEACC). Серверы предоставляют информацию через интерфейс IAccessible.

С помощью microsoft Active Accessibility серверное приложение может:

  • Предоставьте сведения о своих пользовательских объектах пользовательского интерфейса и содержимом клиентских окон.
  • Отправка уведомлений при изменении пользовательского интерфейса.

Например, чтобы разрешить пользователю выбирать команды на пользовательской панели инструментов обработчика слов, программа распознавания речи должна иметь сведения об этой панели инструментов. Поэтому обработчик слов должен сделать такую информацию доступной. Microsoft Active Accessibility предоставляет средства для раскрытия информации о ее пользовательской панели инструментов и для программы распознавания речи, чтобы та могла получить эту информацию.

Клиентские приложения и активные специальные возможности

Клиент Microsoft Active Accessibility должен быть уведомлен, когда пользовательский интерфейс сервера изменился, чтобы он смог передать эти сведения пользователю. Чтобы убедиться, что клиент проинформирован об изменениях пользовательского интерфейса, он использует механизм с именем "События окна" или WinEvents для регистрации для получения уведомлений. Дополнительные сведения см. в разделе WinEvents.

Чтобы узнать о конкретном элементе пользовательского интерфейса и управлять ими, клиенты используют интерфейс объектной модели компонентов Microsoft Active Accessibility (COM), IAccess.

Клиент может получить объект IAccessible для элемента пользовательского интерфейса следующими способами:

  • Вызовите AccessibleObjectFromWindow и передайте дескриптор окна элемента пользовательского интерфейса.
  • Вызовите AccessibleObjectFromPoint и передайте координаты экрана, которые находятся в ограничительном прямоугольнике элемента пользовательского интерфейса.
  • Задайте хук WinEvent, получите уведомление и вызовите AccessibleObjectFromEvent, чтобы получить указатель интерфейса IAccessible для элемента пользовательского интерфейса, который сгенерировал событие.
  • Вызовите метод IAccessible, например accNavigate или get_accParent, чтобы перейти к другому объекту IAccessible.