Iaccessibleex-Implementierungs Richtlinien

Microsoft UI Automation Core kann alle Eigenschaften von Microsoft Active Accessibility für alle zugänglichen Objekte abrufen, die von einem Server über die Schnittstelle " IAccessible " verfügbar gemacht werden. Beim Implementieren von iaccessibleexmüssen Sie nur die Aspekte der UI-Funktionalität verfügbar machen, die andernfalls nicht durch vorhandene Microsoft Active Accessibility-Eigenschaften verfügbar gemacht werden können. In diesem Thema werden die Benutzeroberflächenautomatisierungs-Eigenschaften und Steuerelement Muster beschrieben, die Benutzeroberflächen Funktionen darstellen, die keine Entsprechung in Microsoft Active Accessibility – Sie sind die Eigenschaften und Steuerelement Muster, die Sie in einer iaccessibleex -Implementierung verfügbar machen können.

Dieses Thema enthält folgende Abschnitte:

Eigenschaften

Die folgenden Eigenschaften der Benutzeroberflächen Automatisierung überlappen sich nicht mit der Microsoft Active Accessibility-Funktionalität. Sie können in einer iaccessibleex -Implementierung verwendet werden:

  • Ariaproperties
  • Ariarole
  • AutomationID
  • ClassName
  • Clickablepoint
  • Controllerfor
  • Kultur
  • DescribedBy
  • Flowsto
  • FrameworkId
  • IsContentElement
  • IsControlElement
  • Isdatavalidforform
  • Isrequirements dforform
  • ItemStatus
  • ItemType
  • LabeledBy
  • LocalizedControlType
  • Orientation

Obwohl sich die Eigenschaften der Benutzeroberflächen Automatisierung von AcceleratorKey und Accesskey mit der Eigenschaft accKeyboardShortcut Microsoft Active Accessibility überschneiden, können Sie Sie in einer iaccessibleex -Implementierung für Steuerelemente verwenden, die über eine Zugriffstaste und eine Zugriffstaste verfügen. Ebenso überlappt die ControlType-Benutzeroberflächenautomatisierungs-Eigenschaft mit der Microsoft Active Accessibility accRole-Eigenschaft, aber Sie können Sie in einer iaccessibleex -Implementierung weiterhin verwenden, um eine spezifischere Rolle für ein Steuerelement zu definieren.

Da die folgenden Eigenschaften des Benutzeroberflächenautomatisierungs-Elements bereits von den Eigenschaften von Microsoft Active Accessibility abgedeckt werden, ist es nicht erforderlich, Sie in einer iaccessibleex -Implementierung zu verwenden.

Benutzeroberflächenautomatisierungs-Eigenschaft Microsoft Active Accessibility-Entsprechung
Boundingrechteck accLocation
HasKeyboardFocus accState, Zustands _ System _ fokussiert
isEnabled accState, Zustands _ System nicht _ verfügbar
Iskeyboardfocverwendbar accState, Zustands _ _ Systemfokus verwendbar
IsPassword accState, Zustands _ System _ geschützt
HelpText accHelp
Name accName
Nativewindowhandle Windowfromaccessibleobject
IsOffscreen accState, Status _ System _ unsichtbarStatus / _ System _ Offscreen
ProcessId Bereitgestellt von UI Automation Core

 

Für jede nicht unterstützte Benutzeroberflächenautomatisierungs-Eigenschaft sollte Ihre Implementierung der IRawElementProviderSimple:: GetPropertyValue -Methode den pRetVal -Parameter auf VT _ Empty festlegen und S OK zurückgeben _ . Die Rückgabe von UIA _ E _ NotSupported kann dazu führen, dass der MSAA-to-UIA-Proxy die Standard Zuordnung für die entsprechende Eigenschaft entfernt.

Steuerelement Muster

Die folgenden Benutzeroberflächenautomatisierungs-Steuerelement Muster überlappen sich nicht mit der Microsoft Active Accessibility-Funktionalität Sie können in einer iaccessibleex -Implementierung verwendet werden:

  • Andocken
  • Erweitern_Reduzieren
  • Raster
  • GridItem
  • MultipleView
  • RangeValue
  • Scroll
  • ScrollItem
  • SynchronizedInput
  • Tabelle
  • TableItem
  • Transformieren

Für die RangeValue-und Transformations-Steuerelement Muster überlappen sich einige Methoden zwischen dem Benutzeroberflächenautomatisierungs-Steuerelement Muster und den Microsoft Active Accessibility-Methoden In diesen Fällen müssen beide implementiert werden. Beispielsweise müssen sowohl die IAccessible:: get- _ accValue -als auch die IAccessible::p UT- _ accValue -Methode von Microsoft Active Accessibility implementiert werden. Dies gilt auch für die Benutzeroberflächenautomatisierungs-Methode IRangeValueProvider:: Value und IRangeValueProvider:: SetValue . Intern kann eine Implementierung Code für diese freigeben. Diese Anforderung, beide Sätze zu implementieren, vermeidet eine partielle Implementierung einer Muster Schnittstelle, während die IAccessible -Schnittstelle beibehalten wird, die von vorhandenen Microsoft Active Accessibility-Clients verwendet werden kann.

Die folgenden Steuerelement Muster für die Benutzeroberflächen Automatisierung sind nicht erforderlich, wenn das-Steuerelement eine der unten aufgeführten Rollen aufweist. Andernfalls sollten Sie explizit unterstützt werden, wenn Sie relevant sind.

Steuerelement Muster für Benutzeroberflächen Automatisierung Microsoft Active Accessibility-Rolle
InvokePattern Rolle _ System _ PUSHBUTTON, Rollen _ System- _ MenuItem, _ _ ButtonDropDown-DropdownListe, Rollen _ System _und eine beliebige andere Rolle, bei der der Wert der accdefaultaction-Eigenschaft nicht null ist.
"SelectionItemPattern" Rolle _ Optionsfeld "System _ ListItem", " Rollen _ System _ "
SelectionPattern Liste der Rollen _ Systeme _
TogglePattern _ _ Kontrollkästchen für Rollen System
ValuePattern Rolle _ System _ Text (wenn er nicht schreibgeschützt ist), role _ System _ ProgressBar, _ _ ComboBox für das Rollensystemund jede andere Rolle, wenn der Wert der accValue-Eigenschaft nicht null ist.
WindowPattern Wird automatisch auf den Microsoft-Win32- HWND-s der obersten Ebene unterstützt.

 

Ereignisse für geänderte Benutzeroberflächenautomatisierungs-Eigenschaften

Zusätzlich zu den Ereignissen, die für IAccessibledefiniert sind, werden auch die folgenden Ereignis Bezeichner definiert, die mit einer iaccessibleex -Implementierung als geänderte Ereignisse für die Benutzeroberflächen Automatisierung verwendet werden können. Diese verwenden denselben Mechanismus wie die für IAccessible definierten Ereignisse. Weitere Informationen finden Sie unter WinEvents.

WinEvent-ID für iaccessibleex-Implementierungen Zugehörige WinEvent-ID von Microsoft Active Accessibility
UIA _ ariapropertiespropertyid Keine
UIA _ ariarolepropertyid Keine
UIA _ controllerforpropertyid Keine
UIA _ describedbypropertyid Keine
UIA _ expandredu-expandredutstatepropertyid Ereignis _ Objekt _ StateChange
UIA _ flowstopropertyid Keine
UIA _ inputverwerdde ventid Keine
UIA _ inputreachedotherelementeventid Keine
UIA _ inputreachedtargeteventid Keine
UIA _ isdatavalidforformpropertyid Keine
UIA _ isenabledpropertyid Ereignis _ Objekt _ StateChange
UIA _ itemstatuspropertyid Keine
UIA _ multipleviewcurrentviewpropertyid Keine
UIA _ scrollhorizontallyscrollablepropertyid Keine
UIA _ scrollhorizontalscrollprozpropertyid Ereignis _ Objekt- _ contentscrollt
UIA _ scrollhorizontalviewsizepropertyid Keine
UIA _ scrollverticallyscrollablepropertyid Keine
UIA _ scrollverticalscrollprozpropertyid Ereignis _ Objekt- _ contentscrollt
UIA _ scrollverticalviewsizepropertyid Keine
UIA _ toggletogglestatepropertyid Ereignis _ Objekt _ StateChange

 

Für die oben aufgeführten Ereignisse, bei denen ein Ereignis _ Objekt _ Wert angezeigt wird, sollte die iaccessibleex -Implementierung dieses Ereignis zusätzlich zum aufgelisteten geänderten Ereignis auslösen. Dadurch kann vorhandener iaccessibleex -Client Code weiter ausgeführt werden, während gleichzeitig präzisetere Ereignis Informationen an interessierte Clients übermittelt werden.

WinEvents

Die iaccessibleex-Schnittstelle