Benutzeroberflächenautomatisierung und Microsoft Active Accessibility

Hinweis

Diese Dokumentation ist für .NET Framework-Entwickler konzipiert, die die verwalteten Klassen zur Automatisierung der Benutzeroberfläche verwenden möchten, die im Namespace System.Windows.Automation definiert sind. Aktuelle Informationen zur Automatisierung der Benutzeroberfläche finden Sie auf der Seite zur Windows-Automatisierungs-API: Benutzeroberflächenautomatisierung.

Microsoft Active Accessibility war die vorherige Lösung zum Ermöglichen des Zugriffs auf Clientanwendungen. Die Microsoft-Benutzeroberflächenautomatisierung ist das neue Zugriffsmodell für Microsoft Windows und richtet sich an die Bedürfnisse von Hilfstechnologieprodukten und automatisierte Testtools. Die Benutzeroberflächenautomatisierung bietet viele Verbesserungen gegenüber Active Accessibility.

In diesem Artikel werden die wesentlichen Features von der Benutzeroberflächenautomatisierung sowie die Unterschiede dieser Features zu Active Accessibility erläutert.

Programmiersprachen

Active Accessibility basiert auf dem Component Object Model (COM) mit Unterstützung für duale Schnittstellen und ist daher in C/C++, Microsoft Visual Basic 6.0 und Skriptsprachen programmierbar. Die Benutzeroberflächenautomatisierung (einschließlich der clientseitigen Anbieterbibliothek für Standardsteuerelemente) wurde in verwaltetem Code geschrieben und Benutzeroberflächenautomatisierungs-Clientanwendungen werden am einfachsten mit C# oder Visual Basic .NET programmiert. Benutzeroberflächenautomatisierungs-Anbieter, die Schnittstellenimplementierungen darstellen, können in verwaltetem Code oder in C/C++ geschrieben werden.

Unterstützung in der Windows Presentation Foundation

Windows Presentation Foundation (WPF) ist das neue Modell zum Erstellen von Benutzeroberflächen. WPF-Elemente bieten keine native Unterstützung für Active Accessibility. Sie unterstützen jedoch die Benutzeroberflächenautomatisierung, die die überbrückende Unterstützung für Active Accessibility-Clients umfasst. Nur speziell für die Benutzeroberflächenautomatisierung geschriebene Clients können die Barrierefreiheitsfeatures von WPF optimal nutzen, z. B. die umfangreiche Unterstützung für Text.

Server und Clients

In Active Accessibility können Server und Clients direkt miteinander kommunizieren, hauptsächlich durch die Implementierung des Servers von IAccessible.

Bei der Benutzeroberflächenautomatisierung liegt ein Kerndienst zwischen Server (auch als Anbieter bezeichnet) und Client. Der Kerndienst führt Aufrufe an die von Anbietern implementierten Schnittstellen aus und bietet zusätzliche Dienste, z. B. das Generieren eindeutiger Laufzeitbezeichner für Elemente. Clientanwendungen verwenden Bibliotheksfunktionen zum Aufrufen des Benutzeroberflächenautomatisierungsdiensts.

Anbieter der Benutzeroberflächenautomatisierung können Informationen zu Active Accessibility-Clients bereitstellen, während Active Accessibility-Server Informationen zu Clientanwendungen für die Automatisierung der Benutzeroberfläche bereitstellen können. Da Active Accessibility jedoch nicht so viele Informationen wie die Benutzeroberflächenautomatisierung bereitstellt, sind die beiden Modelle nicht vollständig kompatibel.

Benutzeroberflächenelemente

Active Accessibility stellt Benutzeroberflächenelemente entweder als IAccessible-Schnittstelle oder als untergeordneten Bezeichner dar. Es ist schwierig, zwei IAccessible -Zeiger zu vergleichen, um festzustellen, ob sie auf dasselbe Element verweisen.

In der Benutzeroberflächenautomatisierung wird jedes Element als AutomationElement-Objekt dargestellt. Der Vergleich erfolgt mithilfe des Gleichheitsoperators oder der Equals -Methode, die beide die eindeutigen Laufzeitbezeichner der Elemente vergleichen.

Strukturansichten und Navigation

Die Benutzeroberflächenelemente auf dem Bildschirm können als Baumstruktur betrachtet werden, wobei der Desktop den Stamm, die Anwendungsfenster direkt untergeordnete Elemente und Elemente in Anwendungen weitere Nachfolger darstellen.

In Active Accessibility werden viele Automatisierungselemente, die für Endbenutzer*innen nicht relevant sind, in der Struktur verfügbar gemacht. Clientanwendungen müssen alle Elemente betrachten, um die erforderlichen Elemente zu ermitteln.

Benutzeroberflächenautomatisierungs-Clientanwendungen betrachten die Benutzeroberfläche über eine gefilterte Ansicht. Die Ansicht enthält nur relevante Elemente: Elemente, die dem Benutzer Informationen bieten oder die Interaktion ermöglichen. Es sind vordefinierte Ansichten verfügbar, die nur Steuerelemente und nur Inhaltselemente enthalten. Zusätzlich können Anwendungen benutzerdefinierte Ansichten definieren. Die Benutzeroberflächenautomatisierung vereinfacht die Beschreibung der Benutzeroberfläche für Benutzer*innen und unterstützt diese bei der Interaktion mit der Anwendung.

Die Navigation zwischen Elementen in Active Accessibility erfolgt entweder räumlich (z. B. beim Wechsel zum Element, das auf der linken Seite des Bildschirms liegt), logisch (z. B. beim Wechsel zum nächsten Menüelement oder zum nächsten Element in der Aktivierreihenfolge eines Dialogfelds) oder hierarchisch (z. B. beim Wechsel zum ersten untergeordneten Element in einem Container oder vom untergeordneten zum übergeordneten Element). Die hierarchische Navigation erweist sich durch die Tatsache als kompliziert, dass untergeordnete Elemente nicht immer Objekte sind, die IAccessibleimplementieren.

Bei der Benutzeroberflächenautomatisierung sind alle Benutzeroberflächenelemente AutomationElement-Objekte, die dieselben grundlegenden Funktionen unterstützen. (Aus Sicht des Anbieters handelt es sich um Objekte, die eine von IRawElementProviderSimple geerbte Schnittstelle implementieren.) Die Navigation ist hauptsächlich hierarchisch: von übergeordneten zu untergeordneten Elementen und von einem gleichgeordneten Element zum nächsten. (Die Navigation zwischen gleichgeordneten Elementen verfügt über ein logisches Element, da es möglicherweise der Registerkartenreihenfolge folgt.) Sie können von jedem Startpunkt aus navigieren, indem Sie eine beliebige gefilterte Ansicht der Struktur verwenden, indem Sie die TreeWalker-Klasse verwenden. Sie können auch mithilfe der FindFirst und FindAllzu bestimmten untergeordneten Elementen oder Nachfolgerelementen navigieren. Es ist z. B. ganz einfach, alle Elemente in einem Dialogfeld abzurufen, die ein bestimmtes Steuerelementmuster unterstützen.

Die Navigation in der Benutzeroberflächenautomatisierung ist konsistenter als bei Active Accessibility. Einige Elemente wie Dropdownlisten und Popupfenster werden in der Active Accessibility-Struktur zweimal angezeigt, und die Navigation von diesen Elementen kann möglicherweise zu unerwarteten Ergebnissen führen. Es ist eigentlich nicht möglich, Active Accessibility für ein Grundleistensteuerelement ordnungsgemäß zu implementieren. Die Benutzeroberflächenautomatisierung ermöglicht die erneute Zuordnung zu übergeordneten Elementen und die Neupositionierung, sodass ein Element ungeachtet der Hierarchie, die sich durch den Besitz von Fenstern ergibt, an eine beliebige Stelle in der Struktur platziert werden kann.

Rollen und Steuerelementtypen

Active Accessibility verwendet die accRole-Eigenschaft (IAccessible::get_actRole) zum Abrufen einer Beschreibung der Rolle des Elements in der Benutzeroberfläche, z. B. ROLE_SYSTEM_SLIDER oder ROLE_SYSTEM_MENUITEM. Die Rolle eines Elements ist der wichtigste Anhaltspunkt für seine verfügbaren Funktionen. Die Interaktion mit einem Steuerelement wird mithilfe fester Methoden wie IAccessible::accSelect und IAccessible::accDoDefaultActionerreicht. Die Interaktion zwischen der Clientanwendung und der Benutzeroberfläche ist durch die Möglichkeiten von IAccessible beschränkt.

Im Gegensatz dazu entkoppelt die Benutzeroberflächenautomatisierung den Steuerelementtyp des Elements (durch die ControlType-Eigenschaft beschrieben) größtenteils von dessen zu erwartender Funktionalität. Die Funktionalität wird durch die Steuerelementmuster bestimmt, die vom Anbieter durch Implementieren spezieller Schnittstellen unterstützt werden. Steuerelementmuster können kombiniert werden, um sämtliche Funktionen zu beschreiben, die von einem bestimmten Benutzeroberflächenelement unterstützt werden. Einige Anbieter müssen ein bestimmtes Steuerelementmuster unterstützen. Der Anbieter für ein Kontrollkästchen muss z. B. ein Toggle-Steuerelementmuster unterstützen. Andere Anbieter müssen mindestens einen Satz von Steuerelementmustern unterstützen. Eine Schaltfläche muss z. B. entweder „Toggle“ oder „Invoke“ unterstützen. Wieder andere Anbieter unterstützen überhaupt keine Steuerelementmuster. Ein Bereich, der z. B. nicht vergrößert, verkleinert, verschoben oder angedockt werden kann, besitzt keine Steuerelementmuster.

Die Benutzeroberflächenautomatisierung unterstützt benutzerdefinierte Steuerelemente, die durch die Custom-Eigenschaft gekennzeichnet sind und von der LocalizedControlTypeProperty-Eigenschaft beschrieben werden können.

Die folgende Tabelle veranschaulicht die Zuordnung von Active Accessibility-Rollen zu Steuerelementtypen der Benutzeroberflächenautomatisierung.

Active Accessibility-Rolle Steuerelementtyp der Benutzeroberflächenautomatisierung
ROLE_SYSTEM_PUSHBUTTON Taste
ROLE_SYSTEM_CLIENT Kalender
ROLE_SYSTEM_CHECKBUTTON Kontrollkästchen
ROLE_SYSTEM_COMBOBOX Kombinationsfeld
ROLE_SYSTEM_CLIENT Benutzerdefiniert
ROLE_SYSTEM_LIST Datenraster
ROLE_SYSTEM_LISTITEM Datenelement
ROLE_SYSTEM_DOCUMENT Dokument
ROLE_SYSTEM_TEXT Bearbeiten
ROLE_SYSTEM_GROUPING Group
ROLE_SYSTEM_LIST Header
ROLE_SYSTEM_COLUMNHEADER Headerelement
ROLE_SYSTEM_LINK Hyperlink
ROLE_SYSTEM_GRAPHIC Image
ROLE_SYSTEM_LIST List
ROLE_SYSTEM_LISTITEM Listenelement
ROLE_SYSTEM_MENUPOPUP Menü
ROLE_SYSTEM_MENUBAR Menüleiste
ROLE_SYSTEM_MENUITEM Menüelement
ROLE_SYSTEM_PANE Bereich
ROLE_SYSTEM_PROGRESSBAR Statusleiste
ROLE_SYSTEM_RADIOBUTTON Optionsfeld
ROLE_SYSTEM_SCROLLBAR Bildlaufleiste
ROLE_SYSTEM_SEPARATOR Trennzeichen
ROLE_SYSTEM_SLIDER Schieberegler
ROLE_SYSTEM_SPINBUTTON Spinner
ROLE_SYSTEM_SPLITBUTTON Unterteilte Schaltfläche
ROLE_SYSTEM_STATUSBAR Statusleiste
ROLE_SYSTEM_PAGETABLIST Registerkarte
ROLE_SYSTEM_PAGETAB Registerkartenelement
ROLE_SYSTEM_TABLE Tabelle
ROLE_SYSTEM_STATICTEXT Text
ROLE_SYSTEM_INDICATOR Ziehpunkt
ROLE_SYSTEM_TITLEBAR Titelleiste
ROLE_SYSTEM_TOOLBAR Symbolleiste
ROLE_SYSTEM_TOOLTIP ToolTip
ROLE_SYSTEM_OUTLINE Struktur
ROLE_SYSTEM_OUTLINEITEM Strukturelement
ROLE_SYSTEM_WINDOW Fenster

Weitere Informationen zu den verschiedenen Steuerelementtypen finden Sie unter UI Automation Control Types.

Zustände und Eigenschaften

In Active Accessibility unterstützen Elemente gemeinsame Eigenschaften, und einige dieser Eigenschaften (z. B. accState) müssen in Abhängigkeit von der Rolle des Elements sehr unterschiedliche Dinge beschreiben. Server müssen alle Methoden von IAccessible implementieren, die eine Eigenschaft zurückgeben, auch solche Methoden, die für das Element nicht relevant sind.

Die Benutzeroberflächenautomatisierung definiert viele weitere Eigenschaften, von denen einige den Zuständen in Active Accessibility entsprechen. Manche beziehen sich auf alle Elemente, während andere nur für Steuerelementtypen und Steuerelementmuster gelten. Eigenschaften werden durch eindeutige Bezeichner unterschieden, und die meisten Eigenschaften können über eine einzelne Methode, GetCurrentPropertyValue oder GetCachedPropertyValue, abgerufen werden. Viele Eigenschaften können auch leicht über die Current - und Cached - Eigenschaftenaccessoren abgerufen werden.

Ein Benutzeroberflächenautomatisierungs-Anbieter muss keine irrelevanten Eigenschaften implementieren, sondern kann einfach einen null -Wert für alle nicht unterstützten Eigenschaften zurückgeben. Darüber hinaus kann der Kerndienst der Benutzeroberflächenautomatisierung einige Eigenschaften aus dem Standardfenster abrufen. Diese werden dann mit Eigenschaften vereinigt, die vom Anbieter explizit implementiert wurden.

Zusätzlich zur Unterstützung vieler weiterer Eigenschaften bietet die Benutzeroberflächenautomatisierung bessere Leistungen, indem es ermöglicht wird, mehrere Eigenschaften mit einem einzigen prozessübergreifenden Aufruf abzurufen.

Die folgende Tabelle zeigt die Übereinstimmung zwischen Eigenschaften der beiden Modelle.

Active Accessibility-Eigenschaftenaccessor Eigenschafts-ID der Benutzeroberflächenautomatisierung Bemerkungen
get_accKeyboardShortcut AccessKeyProperty oder AcceleratorKeyProperty AccessKeyProperty hat Vorrang, wenn beide vorhanden sind.
get_accName NameProperty
get_accRole ControlTypeProperty Informationen zur Zuordnung von Rollen zu Steuerelementtypen finden Sie in der vorherigen Tabelle.
get_accValue ValuePattern.ValueProperty

RangeValuePattern.ValueProperty
Dies gilt nur für Steuerelementtypen, die „ValuePattern“ oder „RangeValuePattern“ unterstützen. RangeValue-Werte werden auf Werte zwischen 0 und 100 normalisiert, um dem MSAA-Verhalten zu entsprechen. Value-Elemente verwenden eine Zeichenfolge.
get_accHelp HelpTextProperty
accLocation BoundingRectangleProperty
get_accDescription In der Benutzeroberflächenautomatisierung nicht unterstützt DieaccDescription hatte in MSAA keine eindeutige Spezifikation, was dazu geführt hat, dass Anbieter unterschiedliche Arten von Informationen in dieser Eigenschaft platziert haben.
get_accHelpTopic In der Benutzeroberflächenautomatisierung nicht unterstützt

Die folgende Tabelle zeigt, welche Eigenschaften der Benutzeroberflächenautomatisierung den Active Accessibility-Zustandskonstanten entsprechen.

Active Accessibility-Zustand Eigenschaft der Benutzeroberflächenautomatisierung Löst Zustandsänderung aus?
STATE_SYSTEM_CHECKED Für Kontrollkästchen ist dies ToggleStateProperty

Für Optionsfelder ist dies IsSelectedProperty
J
STATE_SYSTEM_COLLAPSED ExpandCollapseState = Collapsed J
STATE_SYSTEM_EXPANDED ExpandCollapseState = Expanded oder PartiallyExpanded J
STATE_SYSTEM_FOCUSABLE IsKeyboardFocusableProperty N
STATE_SYSTEM_FOCUSED HasKeyboardFocusProperty N
STATE_SYSTEM_HASPOPUP ExpandCollapsePattern für Menüelemente N
STATE_SYSTEM_INVISIBLE IsOffscreenProperty = True und GetClickablePoint führt zu NoClickablePointException N
STATE_SYSTEM_LINKED ControlTypeProperty =

Hyperlink
N
STATE_SYSTEM_MIXED ToggleState = Indeterminate N
STATE_SYSTEM_MOVEABLE CanMoveProperty N
STATE_SYSTEM_MUTLISELECTABLE CanSelectMultipleProperty N
STATE_SYSTEM_OFFSCREEN IsOffscreenProperty = True N
STATE_SYSTEM_PROTECTED IsPasswordProperty N
STATE_SYSTEM_READONLY RangeValuePattern.IsReadOnlyProperty und ValuePattern.IsReadOnlyProperty N
STATE_SYSTEM_SELECTABLE SelectionItemPattern wird unterstützt N
STATE_SYSTEM_SELECTED IsSelectedProperty N
STATE_SYSTEM_SIZEABLE CanResize N
STATE_SYSTEM_UNAVAILABLE IsEnabledProperty J

Die folgenden Zustände wurden entweder von den meisten Active Accessibility-Steuerelementservern nicht implementiert oder verfügen in der Benutzeroberflächenautomatisierung über keine Entsprechung.

Active Accessibility-Zustand Bemerkungen
STATE_SYSTEM_BUSY In der Benutzeroberflächenautomatisierung nicht verfügbar
STATE_SYSTEM_DEFAULT In der Benutzeroberflächenautomatisierung nicht verfügbar
STATE_SYSTEM_ANIMATED In der Benutzeroberflächenautomatisierung nicht verfügbar
STATE_SYSTEM_EXTSELECTABLE Von Active Accessibility-Servern nicht umfassend implementiert
STATE_SYSTEM_MARQUEED Von Active Accessibility-Servern nicht umfassend implementiert
STATE_SYSTEM_SELFVOICING Von Active Accessibility-Servern nicht umfassend implementiert
STATE_SYSTEM_TRAVERSED In der Benutzeroberflächenautomatisierung nicht verfügbar
STATE_SYSTEM_ALERT_HIGH Von Active Accessibility-Servern nicht umfassend implementiert
STATE_SYSTEM_ALERT_MEDIUM Von Active Accessibility-Servern nicht umfassend implementiert
STATE_SYSTEM_ALERT_LOW Von Active Accessibility-Servern nicht umfassend implementiert
STATE_SYSTEM_FLOATING Von Active Accessibility-Servern nicht umfassend implementiert
STATE_SYSTEM_HOTTRACKED In der Benutzeroberflächenautomatisierung nicht verfügbar
STATE_SYSTEM_PRESSED In der Benutzeroberflächenautomatisierung nicht verfügbar

Eine vollständige Liste von Eigenschaftenbezeichnern der Benutzeroberflächenautomatisierung finden Sie unter Übersicht über die Benutzeroberflächenautomatisierungs-Eigenschaften.

Ereignisse

Der Ereignismechanismus der Benutzeroberflächenautomatisierung beruht im Gegensatz zum Mechanismus in Active Accessibility nicht auf dem Windows-Ereignisrouting (das eng mit Fensterhandles verbunden ist) und erfordert von der Clientanwendung keine Einrichtung von Hooks. Abonnements von Ereignissen können nicht nur auf bestimmte Ereignisse, sondern auch auf bestimmte Teile der Struktur abgestimmt werden. Anbieter können zudem das Auslösen von Ereignissen optimieren, indem sie verfolgen, wofür Ereignisse aufgeführt werden.

Es ist für Clients außerdem einfacher, die Elemente abzurufen, die Ereignisse auslösen, da diese direkt an den Ereignisrückruf übergeben werden. Eigenschaften des Elements werden automatisch vorab abgerufen, wenn eine Cacheanforderung aktiv gewesen ist, als der Client das Ereignis abonniert hat.

In der folgende Tabelle wird die Übereinstimmung von Active Accessibility-WinEvents und Ereignissen der Benutzeroberflächenautomatisierung veranschaulicht.

WinEvent Bezeichner für Ereignisse der Benutzeroberflächenautomatisierung
EVENT_OBJECT_ACCELERATORCHANGE AcceleratorKeyProperty -Eigenschaftenänderung
EVENT_OBJECT_CONTENTSCROLLED VerticalScrollPercentProperty oder eine HorizontalScrollPercentProperty -Eigenschaftenänderung für die entsprechenden Bildlaufleisten
EVENT_OBJECT_CREATE StructureChangedEvent
EVENT_OBJECT_DEFACTIONCHANGE Keine Entsprechung
EVENT_OBJECT_DESCRIPTIONCHANGE Keine genaue Entsprechung, vielleicht HelpTextProperty oder die LocalizedControlTypeProperty -Eigenschaftenänderung
EVENT_OBJECT_DESTROY StructureChangedEvent
EVENT_OBJECT_FOCUS AutomationFocusChangedEvent
EVENT_OBJECT_HELPCHANGE HelpTextProperty -Änderung
EVENT_OBJECT_HIDE StructureChangedEvent
EVENT_OBJECT_LOCATIONCHANGE BoundingRectangleProperty -Eigenschaftenänderung
EVENT_OBJECT_NAMECHANGE NameProperty -Eigenschaftenänderung
EVENT_OBJECT_PARENTCHANGE StructureChangedEvent
EVENT_OBJECT_REORDER Wird in Active Accessibility nicht konsistent verwendet In der Benutzeroberflächenautomatisierung ist kein direkt entsprechendes Ereignis definiert.
EVENT_OBJECT_SELECTION ElementSelectedEvent
EVENT_OBJECT_SELECTIONADD ElementAddedToSelectionEvent
EVENT_OBJECT_SELECTIONREMOVE ElementRemovedFromSelectionEvent
EVENT_OBJECT_SELECTIONWITHIN Keine Entsprechung
EVENT_OBJECT_SHOW StructureChangedEvent
EVENT_OBJECT_STATECHANGE Verschiedene durch geänderte Eigenschaften ausgelöste Ereignisse
EVENT_OBJECT_VALUECHANGE RangeValuePattern.ValueProperty und ValuePattern.ValueProperty wurden geändert
EVENT_SYSTEM_ALERT Keine Entsprechung
EVENT_SYSTEM_CAPTUREEND Keine Entsprechung
EVENT_SYSTEM_CAPTURESTART Keine Entsprechung
EVENT_SYSTEM_CONTEXTHELPEND Keine Entsprechung
EVENT_SYSTEM_CONTEXTHELPSTART Keine Entsprechung
EVENT_SYSTEM_DIALOGEND WindowClosedEvent
EVENT_SYSTEM_DIALOGSTART WindowOpenedEvent
EVENT_SYSTEM_DRAGDROPEND Keine Entsprechung
EVENT_SYSTEM_DRAGDROPSTART Keine Entsprechung
EVENT_SYSTEM_FOREGROUND AutomationFocusChangedEvent
EVENT_SYSTEM_MENUEND MenuClosedEvent
EVENT_SYSTEM_MENUPOPUPEND MenuClosedEvent
EVENT_SYSTEM_MENUPOPUPSTART MenuOpenedEvent
EVENT_SYSTEM_MENUSTART MenuOpenedEvent
EVENT_SYSTEM_MINIMIZEEND WindowVisualStateProperty -Eigenschaftenänderung
EVENT_SYSTEM_MINIMIZESTART WindowVisualStateProperty -Eigenschaftenänderung
EVENT_SYSTEM_MOVESIZEEND BoundingRectangleProperty -Eigenschaftenänderung
EVENT_SYSTEM_MOVESIZESTART BoundingRectangleProperty -Eigenschaftenänderung
EVENT_SYSTEM_SCROLLINGEND VerticalScrollPercentProperty oder HorizontalScrollPercentProperty -Eigenschaftenänderung
EVENT_SYSTEM_SCROLLINGSTART VerticalScrollPercentProperty oder HorizontalScrollPercentProperty -Eigenschaftenänderung
EVENT_SYSTEM_SOUND Keine Entsprechung
EVENT_SYSTEM_SWITCHEND Keine Entsprechung, aber ein AutomationFocusChangedEvent -Ereignis signalisiert, dass eine neue Anwendung den Fokus erhalten hat
EVENT_SYSTEM_SWITCHSTART Keine Entsprechung
Keine Entsprechung CurrentViewProperty -Eigenschaftenänderung
Keine Entsprechung HorizontallyScrollableProperty -Eigenschaftenänderung
Keine Entsprechung VerticallyScrollableProperty -Eigenschaftenänderung
Keine Entsprechung HorizontalScrollPercentProperty -Eigenschaftenänderung
Keine Entsprechung VerticalScrollPercentProperty -Eigenschaftenänderung
Keine Entsprechung HorizontalViewSizeProperty -Eigenschaftenänderung
Keine Entsprechung VerticalViewSizeProperty -Eigenschaftenänderung
Keine Entsprechung ToggleStateProperty -Eigenschaftenänderung
Keine Entsprechung WindowVisualStateProperty -Eigenschaftenänderung
Keine Entsprechung AsyncContentLoadedEvent -Ereignis
Keine Entsprechung ToolTipOpenedEvent

Sicherheit

Einige IAccessible -Anpassungsszenarien erfordern das Umschließen eines grundlegenden IAccessible und den Aufruf über dieses. Dadurch ergeben sich Sicherheitsrisiken, da eine teilweise vertrauenswürdige Komponente kein Zwischenelement eines Codepfads darstellen sollte.

Das Modell der Benutzeroberflächenautomatisierung beseitigt die Notwendigkeit, dass Anbieter anderen Anbietercode aufrufen müssen. Der Kerndienst der Benutzeroberflächenautomatisierung führt alle erforderlichen Aggregationen aus.

Siehe auch