Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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
- modèles de contrôle
- WinEvents pour les événements modifiés de propriété UI Automation
- rubriques connexes
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.
Rubriques connexes