Vergleich von Microsoft Active Accessibility und Benutzeroberflächenautomatisierung

Die Automatisierungs-API von Windows besteht aus zwei Technologien: Microsoft Active Accessibility und Microsoft-Benutzeroberflächenautomatisierung. Microsoft Active Accessibility ist die Legacybarrierefreiheitstechnologie, 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 Einschränkungen in Microsoft Active Accessibility überwindet.

In diesem Thema werden die Hauptunterschiede zwischen Microsoft Active Accessibility und der Benutzeroberflächenautomatisierung zusammengefasst. Es umfasst die folgenden Abschnitte:

Grundlegende Entwurfsprinzipien

Microsoft Active Accessibility und die Benutzeroberflächenautomatisierung sind zwar zwei verschiedene Technologien, aber die grundlegenden Entwurfsprinzipien sind ähnlich. Der Zweck beider Technologien besteht darin, umfassende Informationen zu den Elementen der Benutzeroberfläche verfügbar zu machen, die in Windows-Anwendungen verwendet werden. Entwickler*innen von Barrierefreiheitstools können diese Informationen verwenden, um Software zu erstellen, die Anwendungen unter Windows für Personen mit Beeinträchtigungen im Bereich Sehen, Hören oder Bewegung zugänglicher macht.

Sowohl Microsoft Active Accessibility als auch die Benutzeroberflächenautomatisierung stellt das Benutzeroberflächenobjektmodell als hierarchische Struktur dar, die auf dem Desktop verwurzelt ist. Microsoft Active Accessibility stellt einzelne Elemente der Benutzeroberfläche als barrierefreie Objekte dar, und die Benutzeroberflächenautomatisierung stellt sie als Automatisierungselemente dar. 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 Barrierefreiheit anbieten, als Server, während die Benutzeroberflächenautomatisierung sich auf diese als Anbieter bezieht.

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 einen umfangreicheren Satz von Eigenschaften sowie eine Reihe erweiterter Schnittstellen, die als Steuerelementmuster bezeichnet werden, um barrierefreie Objekte so zu bearbeiten, wie es Microsoft Active Accessibility nicht möglich ist.

Weitere Informationen finden Sie unter Übersicht über die Eigenschaften der Benutzeroberflächenautomatisierung und Übersicht über die Steuerelementmuster der Benutzeroberflächenautomatisierung.

MSAA-Rollen und Benutzeroberflächenautomatisierung-Steuerelementmuster

Microsoft hat das Microsoft Active Accessibility-Objektmodell zur selben Zeit entwickelt, zu der Windows 95 veröffentlicht wurde. Das Modell basiert auf „Rollen“, die vor einem Jahrzehnt definiert wurden, und Sie können keine neuen Benutzeroberflächenverhaltensweisen 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 Objekten ermöglichen, mehrere Rollen zu unterstützen, und das Text-Steuerelementmuster der Benutzeroberflächenautomatisierung bietet ein vollwertiges Textobjektmodell.

Objektmodellnavigation

Eine weitere Einschränkung von Microsoft Active Accessibility liegt in der Navigation im Objektmodell. Microsoft Active Accessibility stellt die Benutzeroberfläche als Hierarchie barrierefreier Objekte 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 der IEnumVARIANT-COM-Standardschnittstelle verfügbarmachen. Clients müssen jedoch mit beiden Ansätze für jeden Server umgehen können. Aus dieser Mehrdeutigkeit resultieren 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 durch Bereichsdefinition und Filterung anpassen.

Objektmodellerweiterbarkeit

Microsoft Active Accessibility-Eigenschaften und -Funktionen können nicht erweitert werden, ohne die IAccessible-COM-Schnittstellenspezifikation zu brechen 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 Benutzeroberflächenelemente erstellt werden, können Anwendungsentwickler*innen mit der Benutzeroberflächenautomatisierung 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 Anbietern der Benutzeroberflächenautomatisierung. Die IAccessibleEx-Schnittstelle unterstützt das Hinzufügen bestimmter Eigenschaften der Benutzeroberflächenautomatisierung und Steuerelementmuster zu Legacy-Microsoft Active Accessibility-Servern, ohne die gesamte Implementierung neu schreiben zu müssen. Die IAccessibleEx-Schnittstelle ermöglicht auch In-Process-Microsoft Active Accessibility-Clients, direkt auf Anbieterschnittstellen der Benutzeroberflächenautomatisierung zugreifen zu können anstatt über Clientschnittstellen der Benutzeroberflächenautomatisierung. Weitere Informationen finden Sie unter Die IAccessibleEx-Schnittstelle.

Auswählen von Microsoft Active Accessibility, Benutzeroberflächenautomatisierung 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. Microsoft Active Accessibility ist zwar kurzfristig einfacher zu implementieren, aber aufgrund der mit dieser Technologie verbundenen Einschränkungen, z. B. das Alterungsobjektmodell und die Unfähigkeit, neue Benutzeroberflächenverhaltensweisen oder Zusammenführungsrollen zu unterstützen, langfristig schwieriger und kostspieliger. Diese Einschränkungen werden insbesondere bei der Einführung neuer Steuerelemente deutlich.

Das Objektmodell der Benutzeroberflächenautomatisierung ist benutzerfreundlicher und flexibler als das von Microsoft Active Accessibility. Die Elemente der Benutzeroberflächenautomatisierung spiegeln die Entwicklung von Benutzeroberflächen wider, und Entwickler*innen können benutzerdefinierte Steuerelementmuster der Benutzeroberflächenautomatisierung, Eigenschaften und Ereignisse definieren.

Microsoft Active Accessibility neigt dazu, bei Clients, die prozessextern ausgeführt werden, langsam zu laufen. Um die Leistung zu verbessern, entscheiden sich Entwickler*innen von Barrierefreiheitstool-Programmen häufig dafür, ihre Programme im Zielanwendungsprozess zu integrieren und auszuführen: ein extrem schwieriger und riskanter Ansatz. Die Benutzeroberflächenautomatisierung ist für prozessexterne Clients viel einfacher zu implementieren und bietet viel bessere Leistung und Zuverlässigkeit.

Bestehende Implementierungen von Microsoft Active Accessibility

Wenn Sie auf Microsoft Active Accessibility basierende vorhandene Anwendungen oder Steuerelemente aktualisieren, sollten Sie die Unterstützung der Benutzeroberflächenautomatisierung durch Implementieren der IAccessibleEx-Schnittstelle hinzufügen. Stellen Sie zunächst sicher, dass Ihre Anwendung oder Ihr Steuerelement die folgenden Anforderungen erfüllt:

  • Die grundlegende Hierarchie barrierefreier Objekte des Microsoft Active Accessibility-Servers muss gut organisiert und fehlerfrei sein. IAccessibleEx kann keine Probleme mit vorhandenen Hierarchien barrierefreier Objekte beheben.
  • Die IAccessibleEx-Implementierung muss sowohl der Microsoft Active Accessibility-Spezifikation als auch der Spezifikation der Benutzeroberflächenautomatisierung entsprechen. Microsoft bietet eine Reihe von Tools zur Überprüfung der Compliance mit beiden Spezifikationen. Weitere Informationen finden Sie unter Testen auf Barrierefreiheit.

Wenn eine dieser Anforderungen nicht erfüllt ist, sollten Sie die Benutzeroberflächenautomatisierung nativ implementieren. Sie können Legacy-Microsoft Active Accessibility-Serverimplementierungen aus Gründen der Abwärtskompatibilität beibehalten, wenn dies erforderlich ist. Aus einer Clientperspektive der Benutzeroberflächenautomatisierung besteht kein Unterschied zwischen Benutzeroberflächenautomatisierung-Anbietern und Microsoft Active Accessibility-Servern, die IAccessibleEx ordnungsgemäß implementieren.

Weitere Informationen finden Sie unter Die IAccessibleEx-Schnittstelle.

Übersicht über die Windows-Automatisierungs-API

Microsoft Active Accessibility

UI-Automatisierung

Die IAccessibleEx-Schnittstelle