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 IAccessible
implementieren.
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::accDoDefaultAction
erreicht. 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.