Delen via


Richtlijnen voor IAccessibleEx-implementatie

De Microsoft UI Automation-kern kan alle Eigenschappen van Microsoft Active Accessibility ophalen voor elk toegankelijk object dat door een server wordt weergegeven via de interface I Accessible. Wanneer u IAccessibleEx-implementeert, moet u alleen die aspecten van ui-functionaliteit beschikbaar maken die anders niet beschikbaar kunnen worden gesteld via bestaande Microsoft Active Accessibility-eigenschappen. In dit onderwerp worden de eigenschappen en besturingspatronen van ui-automatisering geïdentificeerd die ui-functionaliteit vertegenwoordigen die geen tegenhanger hebben in Microsoft Active Accessibility. Dit zijn de eigenschappen en besturingspatronen die u kunt weergeven in een IAccessibleEx--implementatie.

Dit onderwerp bevat de volgende secties:

Eigenschappen

De volgende eigenschappen van UI Automation overlappen niet met microsoft Active Accessibility-functionaliteit. Ze kunnen worden gebruikt in een IAccessibleEx--implementatie:

  • AriaProperties
  • AriaRole
  • AutomationId
  • ClassName
  • ClickablePoint
  • ControllerFor
  • Cultuur
  • DescribedBy
  • FlowsTo
  • FrameworkId
  • IsContentElement
  • IsControlElement
  • IsDataValidForForm
  • IsRequiredForForm
  • ItemStatus
  • ItemType
  • LabeledBy
  • LocalizedControlType
  • Oriëntatie

Hoewel de eigenschappen AcceleratorKey en AccessKey UI Automation wel overlappen met de eigenschap accKeyboardShortcut Microsoft Active Accessibility, kunt u deze nog steeds gebruiken in een IAccessibleEx--implementatie voor besturingselementen met zowel een toegangssleutel als een accelerator. Op dezelfde manier overlapt de eigenschap ControlType UI Automation met de eigenschap Microsoft Active Accessibility accRole, maar u kunt deze nog steeds gebruiken in een IAccessibleEx--implementatie om een specifiekere rol voor een besturingselement te definiëren.

Omdat de volgende eigenschappen van ui Automation-elementen al worden gedekt door eigenschappen van Microsoft Active Accessibility, hoeft u deze niet te gebruiken in een IAccessibleEx-implementatie.

Ui Automation-eigenschap Microsoft Active Accessibility Equivalent
BoundingRectangle accLocation
HasKeyboardFocus accState, STATE_SYSTEM_FOCUSED
IsEnabled accState, STATE_SYSTEM_UNAVAILABLE
IsKeyboardFocusable accState, STATE_SYSTEM_FOCUSABLE
IsPassword accState, STATE_SYSTEM_PROTECTED
HelpTekst accHelp
Naam accName
NativeWindowHandle WindowFromAccessibleObject-
IsOffscreen accState, STATE_SYSTEM_INVISIBLE/STATE_SYSTEM_OFFSCREEN
ProcessId Geleverd door UI Automation Core

 

Voor een niet-ondersteunde UI Automation-eigenschap moet de implementatie van de methode IRawElementProviderSimple::GetPropertyValue de parameter pRetVal instellen op VT_EMPTY en S_OK retourneren. Het retourneren van UIA_E_NOTSUPPORTED kan ertoe leiden dat de MSAA-naar-UIA-proxy de standaardtoewijzing voor de bijbehorende eigenschap verwijdert.

Besturingselementpatronen

De volgende ui Automation-besturingspatronen overlappen niet met microsoft Active Accessibility-functionaliteit. Ze kunnen worden gebruikt in een IAccessibleEx--implementatie:

  • Dok
  • ExpandCollapse
  • Rooster
  • GridItem
  • MultipleView
  • RangeValue
  • Scrollen
  • ScrollItem
  • SyncdInput
  • Tafel
  • TableItem
  • Transformeren

Voor de bereikwaarde- en transformatiebeheerpatronen overlappen sommige methoden tussen het ui Automation-besturingspatroon en microsoft Active Accessibility-methoden. In deze gevallen moeten beide worden geïmplementeerd. Zo moeten zowel de IAccessible::get_accValue als IAccessible::p ut_accValue-methoden van Microsoft Active Worden geïmplementeerd, net als de UI AutomationIRangeValueProvider::Value en IRangeValueProvider::SetValue methoden. Intern kan een implementatie code voor deze delen. Deze vereiste voor het implementeren van beide sets voorkomt dat een gedeeltelijke implementatie van een patrooninterface wordt uitgevoerd, terwijl de interface bruikbaar blijft voor bestaande Microsoft Active Accessibility-clients.

De volgende ui Automation-besturingspatronen zijn niet vereist wanneer het besturingselement een van de onderstaande rollen heeft; anders moeten ze expliciet worden ondersteund indien relevant.

Ui Automation-besturingspatroon Microsoft Active Accessibility Role
InvokePattern ROLE_SYSTEM_PUSHBUTTON, ROLE_SYSTEM_MENUITEM, ROLE_SYSTEM_BUTTONDROPDOWN, ROLE_SYSTEM_SPLITBUTTONen een andere rol waarbij de waarde van de eigenschap accDefaultAction niet NULL-is.
SelectionItemPattern ROLE_SYSTEM_LISTITEM, ROLE_SYSTEM_RADIOBUTTON
SelectionPattern ROLE_SYSTEM_LIST
WisselknopPattern ROLE_SYSTEM_CHECKBUTTON
ValuePattern ROLE_SYSTEM_TEXT (wanneer deze niet alleen-lezen is), ROLE_SYSTEM_PROGRESSBAR, ROLE_SYSTEM_COMBOBOXen andere rollen wanneer de waarde van de eigenschap accValue niet NULL-is.
WindowPattern Automatisch ondersteund op het hoogste niveau van Microsoft Win32 HWNDs.

 

WinEvents for UI Automation Property Changed Events

Naast de gebeurtenissen die zijn gedefinieerd voor IAccessible, worden ook de volgende gebeurtenis-id's gedefinieerd en kunnen ze worden gebruikt met een IAccessibleEx--implementatie als gewijzigde eigenschappen van eigenschappen voor de bijbehorende UI Automation-eigenschappen. Deze gebruiken hetzelfde mechanisme als de gebeurtenissen die zijn gedefinieerd voor IAccessible. Zie WinEventsvoor meer informatie.

WinEvent-id voor IAccessibleEx-implementaties Gerelateerde WinEvent-id van Microsoft Active Accessibility
UIA_AriaPropertiesPropertyId Geen
UIA_AriaRolePropertyId Geen
UIA_ControllerForPropertyId Geen
UIA_DescribedByPropertyId Geen
UIA_ExpandCollapseExpandCollapseStatePropertyId EVENT_OBJECT_STATECHANGE
UIA_FlowsToPropertyId Geen
UIA_InputDiscardedEventId Geen
UIA_InputReachedOtherElementEventId Geen
UIA_InputReachedTargetEventId Geen
UIA_IsDataValidForFormPropertyId Geen
UIA_IsEnabledPropertyId EVENT_OBJECT_STATECHANGE
UIA_ItemStatusPropertyId Geen
UIA_MultipleViewCurrentViewPropertyId Geen
UIA_ScrollHorizontallyScrollablePropertyId Geen
UIA_ScrollHorizontalScrollPercentPropertyId EVENT_OBJECT_CONTENTSCROLLED
UIA_ScrollHorizontalViewSizePropertyId Geen
UIA_ScrollVerticallyScrollablePropertyId Geen
UIA_ScrollVerticalScrollPercentPropertyId EVENT_OBJECT_CONTENTSCROLLED
UIA_ScrollVerticalViewSizePropertyId Geen
UIA_ToggleToggleStatePropertyId EVENT_OBJECT_STATECHANGE

 

Voor de bovenstaande gebeurtenissen met een EVENT_OBJECT_ waarde die erna wordt vermeld en IAccessibleEx implementatie moet deze gebeurtenis naast de vermelde gewijzigde gebeurtenis activeren. Hierdoor kunnen bestaande IAccessibleEx--clientcode blijven werken, terwijl meer gedetailleerde gebeurtenisinformatie wordt overgebracht naar geïnteresseerde clients.

WinEvents

de IAccessibleEx-interface