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
- controlepatronen
- WinEvents for UI Automation Property Changed Events
- Verwante onderwerpen
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.
Verwante onderwerpen