Type de contrôle de liste

Cette rubrique fournit des informations sur la prise en charge de Microsoft UI Automation pour le type de contrôle List.

Le type de contrôle List permet d’organiser un ou plusieurs groupes d’éléments plats et permet à un utilisateur de sélectionner un ou plusieurs de ces éléments. Le type de contrôle List a une restriction lâche sur les types d’éléments enfants qu’il peut contenir. Les fournisseurs UI Automation peuvent de ce fait prendre en charge un élément bien connu pour les conteneurs de sélection.

Les sections suivantes définissent l’arborescence, les propriétés, les modèles de contrôle et les événements requis UI Automation pour le type de contrôle List. Les exigences UI Automation s’appliquent à tous les contrôles de liste où l’infrastructure/plateforme de l’interface utilisateur intègre UI Automation prise en charge des types de contrôles et des modèles de contrôle.

Cette rubrique contient les sections suivantes.

Structure d’arborescence classique

Le tableau suivant illustre une vue de contrôle et de contenu typique de l’arborescence UI Automation relative aux contrôles de liste, et décrit ce qui peut être contenu dans chaque vue. Pour plus d’informations sur l’arborescence UI Automation, consultez Vue d’ensemble de l’arborescence UI Automation.

Affichage de contrôle Affichage de contenu
Contient les éléments qui correspondent aux contrôles. Supprime les informations redondantes de l’arborescence afin que les technologies d’assistance fonctionnent avec le plus petit ensemble d’informations significatives pour l’utilisateur final.
  • Liste
    • DataItem (0 ou plus)
    • ListItem (0 ou plus)
    • Group (0 ou plus)
    • ScrollBar (0, 1 ou 2)
  • Liste
    • DataItem (0 ou plus)
    • ListItem (0 ou plus)
    • Group (0 ou plus)

L’affichage de contrôle pour un contrôle qui implémente le type de contrôle List (par exemple, un contrôle list) se compose des éléments suivants :

  • Zéro ou plusieurs éléments dans le contrôle de liste (les éléments peuvent être basés sur les types de contrôle ListItem ou DataItem )
  • Zéro ou plusieurs contrôles group dans un contrôle list
  • Zéro, un ou deux contrôles scroll bar

L’affichage de contenu pour un contrôle qui implémente le type de contrôle List (par exemple, un contrôle list) se compose des éléments suivants :

  • Zéro ou plusieurs éléments dans le contrôle de liste (les éléments peuvent être basés sur les types de contrôle ListItem ou DataItem )
  • Zéro ou plusieurs groupes dans le contrôle list

Un contrôle list ne doit pas contenir d’éléments ayant une relation hiérarchique autre que le fait d’être regroupés. Si les éléments ont des enfants dans l’arborescence UI Automation, le conteneur de liste doit être basé sur le type de contrôle Tree.

Les éléments sélectionnables dans le contrôle de liste seront disponibles auprès des descendants dans l’arborescence UI Automation du contrôle de liste. Tous les éléments du contrôle list doivent appartenir au même groupe de sélection. Les éléments sélectionnables dans la liste doivent être exposés en tant que types de contrôle ListItem (au lieu de DataItem).

Propriétés pertinentes

Le tableau suivant répertorie les propriétés UI Automation dont la valeur ou la définition est particulièrement pertinente pour le type de contrôle List. Pour plus d’informations sur les propriétés UI Automation, consultez Récupération des propriétés à partir d’éléments UI Automation.

Propriété UI Automation Valeur Notes
UIA_AutomationIdPropertyId Consultez les remarques. La valeur de cette propriété doit être unique parmi tous les éléments homologues dans la vue brute de l’arborescence UI Automation.
UIA_BoundingRectanglePropertyId Consultez les remarques. Rectangle externe qui contient l’ensemble du contrôle.
UIA_ClickablePointPropertyId Consultez les remarques. Si le contrôle de liste a un point cliquable (point sur lequel vous pouvez cliquer pour que la liste soit mise au point), ce point doit être exposé via cette propriété. Si la valeur de la propriété UIA_IsOffscreenPropertyId est TRUE, la tentative de récupération de cette propriété entraîne l’erreur UIA_E_NOCLICKABLEPOINT .
UIA_ControlTypePropertyId Liste
UIA_HelpTextPropertyId Consultez les remarques. Le texte d’aide sur les contrôles list doit expliquer la raison pour laquelle l’utilisateur est invité à faire un sélection dans une liste d’options. Par exemple, « la sélection d’un élément dans cette liste a pour effet de définir la résolution d’affichage de votre moniteur ».
UIA_IsContentElementPropertyId TRUE Le contrôle de liste est toujours inclus dans l’affichage du contenu de l’arborescence UI Automation.
UIA_IsControlElementPropertyId TRUE Le contrôle de liste est toujours inclus dans l’affichage de contrôle de l’arborescence UI Automation.
UIA_IsKeyboardFocusablePropertyId Consultez les remarques. Si le contrôle peut recevoir le focus clavier, il doit prendre en charge cette propriété.
UIA_LabeledByPropertyId Consultez les remarques. S’il existe une étiquette de texte statique, cette propriété doit exposer une référence à ce contrôle.
UIA_LocalizedControlTypePropertyId Consultez les remarques. Chaîne localisée correspondant au type de contrôle List . La valeur par défaut est « list » pour en-US ou English (États-Unis).
UIA_NamePropertyId Consultez les remarques. La valeur de la propriété Name d’un contrôle de liste doit indiquer la catégorie d’options que l’utilisateur est invité à sélectionner. Cette propriété tire généralement son nom d’une étiquette de texte statique. S’il n’y a pas d’étiquette de texte statique, le développeur de l’application doit exposer une valeur pour la propriété Name .
Le seul cas où cette propriété n’est pas obligatoire pour les contrôles list, c’est lorsque le contrôle est utilisé dans la sous-arborescence d’un autre contrôle.

Modèles de contrôle et propriétés requis

Le tableau suivant répertorie les modèles de contrôle UI Automation qui doivent être pris en charge par tous les contrôles de liste. Pour plus d’informations sur les modèles de contrôle, consultez UI Automation Control Patterns Overview.

Modèle de contrôle/Propriété de modèle Prise en charge/valeur Notes
IGridProvider Dépend Implémentez le modèle de contrôle Grid lorsque la navigation dans la grille doit être disponible sur une base élément par élément.
IMultipleViewProvider Dépend Implémentez le modèle de contrôle MultipleView si le contrôle peut prendre en charge plusieurs vues des éléments dans le conteneur.
IScrollProvider Dépend Implémentez le modèle de contrôle Scroll si les éléments du conteneur peuvent faire défiler.
ISelectionProvider Dépend Si un contrôle prend en charge le type de contrôle List qui prend en charge la sélection, le contrôle doit implémenter le modèle de contrôle Sélection lorsqu’un état de sélection est conservé entre les éléments contenus dans le contrôle. Si les éléments du contrôle ne sont pas sélectionnables, le type de contrôle Group peut être utilisé.
CanSelectMultiple Dépend Les contrôles List peuvent être des conteneurs à sélection unique ou multiple.
IsSelectionRequired Dépend Avec les contrôles List, la sélection d’un élément n’est pas toujours obligatoire.
ITableProvider Jamais Le modèle de contrôle Table n’est jamais pris en charge pour le type de contrôle List . Si le contrôle doit prendre en charge ce modèle de contrôle, le contrôle doit être basé sur le type de contrôle DataGrid .

Événements obligatoires

Le tableau suivant répertorie les événements UI Automation que les contrôles doivent prendre en charge. Pour plus d’informations sur les événements, consultez UI Automation Events Overview.

Événement UI Automation Notes
UIA_AutomationFocusChangedEventId
UIA_BoundingRectanglePropertyId’événement de modification de propriété.
UIA_IsEnabledPropertyId événement de modification de propriété. Si le contrôle prend en charge la propriété IsEnabled , il doit prendre en charge cet événement.
UIA_IsOffscreenPropertyId événement de modification de propriété. Si le contrôle prend en charge la propriété IsOffscreen , il doit prendre en charge cet événement.
UIA_LayoutInvalidatedEventId Si la disposition des éléments enfants peut être modifiée, le contrôle doit prendre en charge cet événement.
UIA_MultipleViewCurrentViewPropertyId’événement de modification de propriété. Si le contrôle prend en charge le modèle de contrôle MultipleView , il doit prendre en charge cet événement.
UIA_ScrollHorizontallyScrollablePropertyId’événement de modification de propriété. Si le contrôle prend en charge le modèle de contrôle Scroll , il doit prendre en charge cet événement.
UIA_ScrollHorizontalScrollPercentPropertyId événement de modification de propriété. Si le contrôle prend en charge le modèle de contrôle Scroll , il doit prendre en charge cet événement.
UIA_ScrollHorizontalViewSizePropertyId’événement de modification de propriété. Si le contrôle prend en charge le modèle de contrôle Scroll , il doit prendre en charge cet événement.
UIA_ScrollVerticalScrollPercentPropertyId’événement de modification de propriété. Si le contrôle prend en charge le modèle de contrôle Scroll , il doit prendre en charge cet événement.
UIA_ScrollVerticallyScrollablePropertyId’événement de modification de propriété. Si le contrôle prend en charge le modèle de contrôle Scroll , il doit prendre en charge cet événement.
UIA_ScrollVerticalViewSizePropertyId’événement de modification de propriété. Si le contrôle prend en charge le modèle de contrôle Scroll , il doit prendre en charge cet événement.
UIA_Selection_InvalidatedEventId Si le contrôle prend en charge le modèle de contrôle Sélection , il doit prendre en charge cet événement.
UIA_StructureChangedEventId

Conceptuel

Vue d'ensemble des types de contrôle UI Automation

Vue d'ensemble d'UI Automation