Partager via


Instructions d’implémentation iAccessibleEx

Microsoft UI Automation core peut récupérer toutes les propriétés d’accessibilité Active Microsoft pour tout objet accessible exposé par un serveur via l’interface IAccessible. Lors de l’implémentation de IAccessibleEx, vous devez exposer uniquement les aspects de la fonctionnalité d’interface utilisateur qui ne peuvent pas être exposés par le biais de propriétés Microsoft Active Accessibility existantes. Cette rubrique identifie les propriétés et les modèles de contrôle UI Automation qui représentent les fonctionnalités d’interface utilisateur qui n’ont aucun équivalent dans Microsoft Active Accessibility. Il s’agit des propriétés et des modèles de contrôle que vous pouvez exposer dans une implémentation IAccessibleEx.

Cette rubrique contient les sections suivantes :

Propriétés

Les propriétés UI Automation suivantes ne chevauchent pas les fonctionnalités d’accessibilité Microsoft Active. Ils peuvent être utilisés dans une implémentation IAccessibleEx :

  • AriaProperties
  • AriaRole
  • AutomationId
  • ClassName
  • ClickablePoint
  • ControllerFor
  • Culture
  • DescriptionBy
  • FlowTo
  • FrameworkId
  • IsContentElement
  • IsControlElement
  • IsDataValidForForm
  • IsRequiredForForm
  • ItemStatus
  • ItemType
  • LabeledBy
  • LocalizedControlType
  • Orientation

Bien que les propriétés AcceleratorKey et AccessKey UI Automation se chevauchent avec la propriété accKeyboardShortcut Microsoft Active Accessibility, vous pouvez toujours les utiliser dans une implémentation IAccessibleEx pour les contrôles qui ont à la fois une clé d’accès et un accélérateur. De même, la propriété ControlType UI Automation chevauche la propriété Microsoft Active Accessibility accRole, mais vous pouvez toujours l’utiliser dans une implémentation IAccessibleEx pour définir un rôle plus spécifique pour un contrôle.

Étant donné que les propriétés d’élément UI Automation suivantes sont déjà couvertes par les propriétés Microsoft Active Accessibility, il n’est pas nécessaire de les utiliser dans une implémentation IAccessibleEx.

UI Automation, propriété Équivalent d’accessibilité active Microsoft
BoundingRectangle accLocation
HasKeyboardFocus accState, STATE_SYSTEM_FOCUSED
IsEnabled accState, STATE_SYSTEM_UNAVAILABLE
IsKeyboardFocusable accState, STATE_SYSTEM_FOCUSABLE
IsPassword accState, STATE_SYSTEM_PROTECTED
HelpText accHelp
Nom accName
NativeWindowHandle WindowFromAccessibleObject
IsOffscreen accState, STATE_SYSTEM_INVISIBLE/STATE_SYSTEM_OFFSCREEN
ProcessId Fourni par UI Automation Core

 

Pour toute propriété UI Automation non prise en charge, votre implémentation de la méthode IRawElementProviderSimple ::GetPropertyValue doit définir le paramètre pRetVal sur VT_EMPTY et retourner S_OK. Retourner UIA_E_NOTSUPPORTED peut entraîner la suppression du mappage par défaut du proxy MSAA-to-UIA pour la propriété correspondante.

Modèles de contrôle

Les modèles de contrôle UI Automation suivants ne chevauchent pas les fonctionnalités d’accessibilité Active Microsoft. Ils peuvent être utilisés dans une implémentation IAccessibleEx :

  • Bassin
  • ExpandCollapse
  • Grille
  • GridItem
  • MultipleView
  • RangeValue
  • Faire défiler
  • ScrollItem
  • SynchronizedInput
  • Table
  • TableItem
  • Transformer

Pour les modèles de contrôle RangeValue et Transform, certaines méthodes se chevauchent entre le modèle de contrôle UI Automation et les méthodes Microsoft Active Accessibility. Dans ces cas, les deux doivent être implémentés. Par exemple, les méthodes IAccessible ::get_accValue et IAccessible ::p ut_accValue de Microsoft doivent être implémentées, car ui AutomationIRangeValueProvider ::Value et méthodes IRangeValueValueProvider ::SetValue. En interne, une implémentation peut partager du code pour celles-ci. Cette exigence pour implémenter les deux ensembles évite d’avoir une implémentation partielle d’une interface de modèle tout en conservant l’interface IAccessible utilisable par les clients Microsoft Active Accessibility existants.

Les modèles de contrôle UI Automation suivants ne sont pas obligatoires lorsque le contrôle a l’un des rôles décrits ci-dessous ; sinon, elles doivent être explicitement prises en charge si elles sont pertinentes.

Modèle de contrôle UI Automation Rôle d’accessibilité active Microsoft
InvokePattern ROLE_SYSTEM_PUSHBUTTON, ROLE_SYSTEM_MENUITEM, ROLE_SYSTEM_BUTTONDROPDOWN, ROLE_SYSTEM_SPLITBUTTONet tout autre rôle où la valeur de la propriété accDefaultAction n’est pas NULL .
SelectionItemPattern ROLE_SYSTEM_LISTITEM, ROLE_SYSTEM_RADIOBUTTON
SelectionPattern ROLE_SYSTEM_LIST
TogglePattern ROLE_SYSTEM_CHECKBUTTON
ValuePattern ROLE_SYSTEM_TEXT (lorsqu’il n’est pas en lecture seule), ROLE_SYSTEM_PROGRESSBAR, ROLE_SYSTEM_COMBOBOXet tout autre rôle lorsque la valeur de la propriété accValue n’est pas NULL.
WindowPattern Prise en charge automatiquement sur microsoft Win32 de niveau supérieur HWNDs.

 

Événements modifiés de propriété WinEvents pour UI Automation

Outre les événements définis pour IAccessible, les identificateurs d’événement suivants sont également définis et peuvent être utilisés avec une implémentation IAccessibleEx en tant qu’événements modifiés par propriété pour les propriétés UI Automation correspondantes. Ils utilisent le même mécanisme que les événements définis pour IAccessible . Pour plus d’informations, consultez WinEvents.

ID WinEvent pour les implémentations IAccessibleEx ID WinEvent associé de Microsoft Active Accessibility
UIA_AriaPropertiesPropertyId Aucun
UIA_AriaRolePropertyId Aucun
UIA_ControllerForPropertyId Aucun
UIA_DescribedByPropertyId Aucun
UIA_ExpandCollapseExpandCollapseStatePropertyId EVENT_OBJECT_STATECHANGE
UIA_FlowsToPropertyId Aucun
UIA_InputDiscardedEventId Aucun
UIA_InputReachedOtherElementEventId Aucun
UIA_InputReachedTargetEventId Aucun
UIA_IsDataValidForFormPropertyId Aucun
UIA_IsEnabledPropertyId EVENT_OBJECT_STATECHANGE
UIA_ItemStatusPropertyId Aucun
UIA_MultipleViewCurrentViewPropertyId Aucun
UIA_ScrollHorizontallyScrollablePropertyId Aucun
UIA_ScrollHorizontalScrollPercentPropertyId EVENT_OBJECT_CONTENTSCROLLED
UIA_ScrollHorizontalViewSizePropertyId Aucun
UIA_ScrollVerticallyScrollablePropertyId Aucun
UIA_ScrollVerticalScrollPercentPropertyId EVENT_OBJECT_CONTENTSCROLLED
UIA_ScrollVerticalViewSizePropertyId Aucun
UIA_ToggleToggleStatePropertyId EVENT_OBJECT_STATECHANGE

 

Pour les événements ci-dessus qui ont une valeur EVENT_OBJECT_ répertoriée après eux, et implémentation iAccessibleEx doit déclencher cet événement en plus de l’événement modifié répertorié. Cela permet à IAccessibleEx code client existant de continuer à fonctionner, tout en transmettant des informations d’événement plus granulaires aux clients intéressés.

WinEvents

l’interface IAccessibleEx