Принцип работы активных специальных возможностей
Microsoft Active Accessibility предназначен для помощи специальных возможностей, называемых клиентами, взаимодействовать со стандартными и настраиваемыми элементами пользовательского интерфейса других приложений и операционной системы. Клиент Microsoft Active Accessibility — это любая программа, которая использует Microsoft Active Accessibility для доступа к элементам пользовательского интерфейса приложения, идентификации и управления ими. Клиенты включают специальные средства, средства автоматического тестирования и некоторые компьютерные приложения для обучения.
С помощью Microsoft Active Accessibility клиентское приложение может:
- Запрос сведений; например, об элементе пользовательского интерфейса в определенном расположении.
- Получать уведомления при изменении информации; например, когда элемент управления становится серым или при изменении текстовой строки.
- Выполнять действия, влияющие на пользовательский интерфейс или содержимое документа; Например, нажмите кнопку push, раскрывающееся меню и выберите команду меню.
Приложения, которые взаимодействуют с клиентами и предоставляют сведения для них, называются серверами. Сервер использует 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.
Чтобы узнать о конкретном элементе пользовательского интерфейса и управлять им, клиенты используют интерфейс COM(Майкрософт) IAccess.
Клиент может получить объект IAccessible для элемента пользовательского интерфейса следующими четырьмя способами:
- Вызовите Метод AccessibleObjectFromWindow и передайте дескриптор окна элемента пользовательского интерфейса.
- Вызовите AccessibleObjectFromPoint и передайте расположение экрана, которое находится в ограничивающем прямоугольнике элемента пользовательского интерфейса.
- Установите перехватчик WinEvent, получите уведомление и вызовите AccessibleObjectFromEvent , чтобы получить указатель интерфейса IAccessible для элемента пользовательского интерфейса, создающего событие.
- Вызовите метод IAccessible , например accNavigate или get_accParent , чтобы перейти к другому объекту IAccessible .