Microsoft Active Accessibility and UI Automation Compared
Die Windows-Automatisierungs-API besteht aus zwei Technologien: Microsoft Active Accessibility und Microsoft UI Automation. Microsoft Active Accessibility ist die ältere Barrierefreiheitstechnologie, die als Plattform-Add-In für Windows 95 eingeführt wurde, während die Benutzeroberflächenautomatisierung eine neuere, leistungsfähigere Technologie ist, die die Inhärenten in Microsoft Active Accessibility überwindet.
In diesem Thema werden die wichtigsten Unterschiede zwischen Microsoft Active Accessibility und Benutzeroberflächenautomatisierung zusammengefasst. Sie enthält die folgenden Abschnitte:
- Grundlegenden Entwurfsprinzipien
- Eigenschaften und Steuerelementmuster
- MSAA-Rollen und Steuerelementmuster für die Benutzeroberflächenautomatisierung
- Objektmodellnavigation
- Objektmodellerweiterung
- Übergang von MSAA-
- Auswählen von Microsoft Active Accessibility, UI Automation oder IAccessibleEx
- Verwandte Themen
Grundlegende Entwurfsprinzipien
Obwohl Microsoft Active Accessibility und Benutzeroberflächenautomatisierung zwei verschiedene Technologien sind, sind die grundlegenden Entwurfsprinzipien ähnlich. Der Zweck beider Technologien besteht darin, umfassende Informationen zu den ui-Elementen verfügbar zu machen, die in Windows-Anwendungen verwendet werden. Entwickler von Barrierefreiheitstools können diese Informationen verwenden, um Software zu erstellen, die Anwendungen unter Windows für Personen mit Seh-, Hör- oder Bewegungsbehinderungen zugänglicher macht.
Sowohl die Microsoft Active Accessibility als auch die Benutzeroberflächenautomatisierung machen das UI-Objektmodell als hierarchische Struktur verfügbar, die auf dem Desktop verwurzelt ist. Microsoft Active Accessibility stellt einzelne UI-Elemente als barrierefreie Objektedar, und die Benutzeroberflächenautomatisierung stellt sie als Automatisierungselementedar. Beide beziehen sich auf das Barrierefreiheitstool oder softwareautomatisierungsprogramm als Client-. Microsoft Active Accessibility bezieht sich jedoch auf die Anwendung oder das Steuerelement, die die Benutzeroberfläche für die Barrierefreiheit als Server-anbieten, während die Benutzeroberflächenautomatisierung dies als Anbieterbezeichnet.
Eigenschaften und Steuerelementmuster
Microsoft Active Accessibility bietet eine einzelne COM-Schnittstelle (Component Object Model) mit einer festen, kleinen Gruppe von Eigenschaften. Die Benutzeroberflächenautomatisierung bietet eine umfangreichere Gruppe von Eigenschaften sowie eine Reihe erweiterter Schnittstellen, die Steuerelementmustern genannt werden,, um barrierefreie Objekte auf die Art und Weise zu bearbeiten, wie microsoft Active Accessibility nicht möglich ist.
Weitere Informationen finden Sie unter Ui Automation Properties Overview and UI Automation Control Patterns Overview.
MSAA-Rollen und Steuerelementmuster für die Benutzeroberflächenautomatisierung
Microsoft hat das Microsoft Active Accessibility-Objektmodell zur gleichen Zeit entwickelt wie Windows 95 wurde veröffentlicht. Das Modell basiert auf "Rollen", die vor einem Jahrzehnt definiert wurden, und Sie können keine neuen Benutzeroberflächenverhalten unterstützen oder zwei oder mehr Rollen zusammenführen. Es gibt z. B. kein Textobjektmodell, um Hilfstechnologien bei der Behandlung komplexer Webinhalte zu unterstützen. Die Benutzeroberflächenautomatisierung überwindet diese Einschränkungen durch die Einführung von Steuerelementmustern, die es Objekten ermöglichen, mehr als eine Rolle zu unterstützen, und die Benutzeroberflächenautomatisierung Text Steuerelementmuster bietet ein umfassendes Textobjektmodell.
Objektmodellnavigation
Eine weitere Einschränkung der Microsoft Active Accessibility umfasst die Navigation im Objektmodell. Microsoft Active Accessibility stellt die Benutzeroberfläche als Hierarchie von barrierefreien Objekten dar. Clients navigieren von einem barrierefreien Objekt zu einem anderen mithilfe von Schnittstellen und Methoden, die über das barrierefreie Objekt verfügbar sind. Server können die untergeordneten Elemente eines barrierefreien Objekts mit Eigenschaften der IAccessible-Schnittstelle oder mit der standardmäßigen IEnumVARIANT- COM-Schnittstelle verfügbar machen. Clients müssen jedoch beide Ansätze für jeden Server behandeln können. Diese Mehrdeutigkeit bedeutet zusätzliche Arbeit für Clientimplementierer und fehlerhafte barrierefreie Objektmodelle für Serverimplementierer.
Die Benutzeroberflächenautomatisierung stellt die Benutzeroberfläche als hierarchische Struktur von Automatisierungselementen dar und stellt eine einzelne Schnittstelle für die Navigation in der Struktur bereit. Clients können die Ansicht von Elementen in der Struktur anpassen, indem sie bereichs- und filtert.
Erweiterbarkeit des Objektmodells
Microsoft Active Accessibility-Eigenschaften und -Funktionen können nicht erweitert werden, ohne die IAccessible COM-Schnittstellenspezifikation zu unterbrechen oder zu ändern. Das Ergebnis ist, dass das neue Steuerelementverhalten nicht über das Objektmodell verfügbar gemacht werden kann; es ist tendenziell statisch.
Wenn neue UI-Elemente erstellt werden, können Anwendungsentwickler benutzerdefinierte Eigenschaften, Steuerelementmuster und Ereignisse einführen, um die neuen Elemente zu beschreiben. Weitere Informationen finden Sie unter benutzerdefinierte Eigenschaften, Ereignisse und Steuerelementmuster.
Übergang von MSAA
Das Windows Automation API-Framework bietet Unterstützung für den Übergang von Microsoft Active Accessibility-Servern zu Benutzeroberflächenautomatisierungs-Anbietern. Die IAccessibleEx--Schnittstelle ermöglicht die Unterstützung bestimmter Benutzeroberflächenautomatisierungseigenschaften und Steuerelementmuster, die älteren Microsoft Active Accessibility-Servern hinzugefügt werden, ohne die gesamte Implementierung neu schreiben zu müssen. Die IAccessibleEx--Schnittstelle ermöglicht auch den direkten Zugriff auf Benutzeroberflächenautomatisierungs-Anbieterschnittstellen und nicht über Benutzeroberflächenautomatisierungs-Clientschnittstellen. Weitere Informationen finden Sie unter IAccessibleEx Interface.
Auswählen von Microsoft Active Accessibility, UI Automation oder IAccessibleEx
In diesem Abschnitt können Sie ermitteln, welche Windows Automation API-Lösung zum Implementieren eines Hilfstechnologieprodukts verwendet werden soll, oder um Ihre Anwendung für Hilfstechnologieprodukte zugänglich zu machen.
Neue Anwendungen und Steuerelemente
Wenn Sie eine neue Anwendung oder ein neues Steuerelement entwickeln, empfiehlt Microsoft die Verwendung der Benutzeroberflächenautomatisierung. Obwohl microsoft Active Accessibility kurzfristig einfacher zu implementieren ist, werden die Einschränkungen dieser Technologie, z. B. das Alterungsobjektmodell und die Unfähigkeit, neue Benutzeroberflächenverhalten oder Zusammenführungsrollen zu unterstützen, langfristig schwieriger und kostspieliger. Diese Einschränkungen werden insbesondere bei der Einführung neuer Steuerelemente deutlich.
Das Benutzeroberflächenautomatisierungs-Objektmodell ist einfacher zu verwenden und ist flexibler als das von Microsoft Active Accessibility. Die Benutzeroberflächenautomatisierungselemente spiegeln die Entwicklung von Benutzeroberflächen wider, und Entwickler können benutzerdefinierte Steuerelementmuster, Eigenschaften und Ereignisse der Benutzeroberflächenautomatisierung definieren.
Microsoft Active Accessibility tends to run langsam for clients that run out of process. Um die Leistung zu verbessern, entscheiden sich Entwickler von Barrierefreiheitstoolprogrammen häufig dafür, ihre Programme im Zielanwendungsprozess zu integrieren und auszuführen: ein extrem schwieriger und riskanter Ansatz. Die Benutzeroberflächenautomatisierung ist viel einfacher zu implementieren für Out-of-Process-Clients und bietet viel bessere Leistung und Zuverlässigkeit.
Vorhandene Microsoft Active Accessibility-Implementierungen
Wenn Sie eine vorhandene Anwendung oder ein vorhandenes Steuerelement aktualisieren, das auf microsoft Active Accessibility basiert, sollten Sie die Unterstützung für die Benutzeroberflächenautomatisierung hinzufügen, indem Sie die IAccessibleEx--Schnittstelle implementieren. Stellen Sie zunächst sicher, dass Ihre Anwendung oder Ihr Steuerelement die folgenden Anforderungen erfüllt:
- Die grundlegende Hierarchie des Microsoft Active Accessibility-Servers für barrierefreie Objekte muss gut organisiert und fehlerfrei sein. IAccessibleEx- können keine Probleme mit vorhandenen barrierefreien Objekthierarchien beheben.
- Ihre IAccessibleEx--Implementierung muss sowohl der Microsoft Active Accessibility-Spezifikation als auch der Benutzeroberflächenautomatisierungsspezifikation entsprechen. Microsoft bietet eine Reihe von Tools zur Überprüfung der Compliance mit beiden Spezifikationen. Weitere Informationen finden Sie unter Testing for accessibility.
Wenn eine dieser Anforderungen nicht erfüllt ist, sollten Sie die systemeigene Implementierung der Benutzeroberflächenautomatisierung in Betracht ziehen. Sie können ältere Microsoft Active Accessibility-Serverimplementierungen aus Gründen der Abwärtskompatibilität beibehalten, wenn dies erforderlich ist. Aus Sicht des Benutzeroberflächenautomatisierungs-Clients gibt es keinen Unterschied zwischen Benutzeroberflächenautomatisierungs-Anbietern und Microsoft Active Accessibility-Servern, die IAccessibleEx- ordnungsgemäß implementieren.
Weitere Informationen finden Sie unter IAccessibleEx Interface.
Verwandte Themen