Funktionsweise Active Accessibility
Microsoft Active Accessibility ist so konzipiert, dass Barrierefreiheitshilfen, sogenannte Clients, mit standardmäßigen und benutzerdefinierten Benutzeroberflächenelementen anderer Anwendungen und des Betriebssystems interagieren können. Ein Microsoft Active Accessibility Client ist ein beliebiges Programm, das Microsoft Active Accessibility verwendet, um auf die Benutzeroberflächenelemente einer Anwendung zu zugreifen, sie zu identifizieren oder zu bearbeiten. Zu den Clients gehören Barrierefreiheitshilfen, automatisierte Testtools und einige computerbasierte Trainingsanwendungen.
Mit Microsoft Active Accessibility kann eine Clientanwendung:
- Abfragen von Informationen; z. B. über ein Benutzeroberflächenelement an einer bestimmten Position.
- Empfangen von Benachrichtigungen, wenn sich Informationen ändern; Beispiel: Wenn ein Steuerelement grau ist oder sich eine Textzeichenfolge ändert.
- Ausführen von Aktionen, die sich auf die Benutzeroberfläche oder dokumentinhalt auswirken; Klicken Sie beispielsweise auf eine Pushschaltfläche, ein Dropdownmenü, und wählen Sie einen Menübefehl aus.
Die Anwendungen, die mit clients interagieren und Informationen für Clients bereitstellen, werden als Server bezeichnet. Ein Server verwendet Microsoft Active Accessibility, um Clients Informationen zu seinen Benutzeroberflächenelementen zur Verfügung zu stellen. Jedes Steuerelement, Modul oder jede Anwendung, die Microsoft Active Accessibility verwendet, um Informationen über seine Benutzeroberfläche verfügbar zu machen, wird als Microsoft Active Accessibility betrachtet. Server kommunizieren mit Clients, indem sie Ereignisbenachrichtigungen senden (z. B. NotifyWinEventaufrufen) und auf Clientanforderungen für den Zugriff auf Benutzeroberflächenelemente reagieren (z. B. die Behandlung von WM _ GETOBJECT-Nachrichten, die von OLEACC gesendet werden). Server machen Informationen über die IAccessible-Schnittstelle verfügbar.
Mit Microsoft Active Accessibility kann eine Serveranwendung:
- Stellen Sie Informationen über die benutzerdefinierten Benutzeroberflächenobjekte und den Inhalt der Clientfenster bereit.
- Senden sie Benachrichtigungen, wenn sich die Benutzeroberfläche ändert.
Um es einem Benutzer beispielsweise zu ermöglichen, Befehle in einer benutzerdefinierten Symbolleiste für die Wortverarbeitung auszuwählen, muss ein Spracherkennungsprogramm über Informationen zu dieser Symbolleiste verfügen. Der Textprozessor müsste diese Informationen daher verfügbar machen. Microsoft Active Accessibility bietet dem Textprozessor die Möglichkeit, Informationen über seine benutzerdefinierte Symbolleiste verfügbar zu machen, und das Spracherkennungsprogramm, um diese Informationen zu erhalten.
Clientanwendungen und Active Accessibility
Ein Microsoft Active Accessibility client muss benachrichtigt werden, wenn sich die Serverbenutzeroberfläche geändert hat, damit er dem Benutzer diese Informationen übermitteln kann. Um sicherzustellen, dass der Client über Änderungen der Benutzeroberfläche informiert wird, verwendet er einen Mechanismus namens Fensterereignisse oder WinEvents, um sich für den Empfang von Benachrichtigungen zu registrieren. Weitere Informationen finden Sie unter WinEvents.
Um mehr über ein bestimmtes Benutzeroberflächenelement zu erfahren und zu bearbeiten, verwenden Clients die Microsoft Active Accessibility Component Object Model-Schnittstelle (COM), IAccessible.
Ein Client kann ein IAccessible-Objekt für ein Benutzeroberflächenelement auf die folgenden vier Arten abrufen:
- Rufen Sie AccessibleObjectFromWindow auf, und übergeben Sie das Fensterhand handle des Benutzeroberflächenelements.
- Rufen Sie AccessibleObjectFromPoint auf, und übergeben Sie eine Bildschirmposition, die sich innerhalb des umrandenden Rechtecks des Ui-Elements befindet.
- Legen Sie einen WinEvent-Hook fest, empfangen Sie eine Benachrichtigung, und rufen Sie AccessibleObjectFromEvent auf, um einen IAccessible-Schnittstellenzeiger für das Benutzeroberflächenelement abzurufen, das das Ereignis generiert hat.
- Rufen Sie eine IAccessible-Methode wie accNavigate oder get _ accParent auf, um zu einem anderen IAccessible-Objekt zu wechseln.