Vue d’ensemble de l’arborescence UI Automation

Notes

Cette documentation s’adresse aux développeurs .NET Framework qui souhaitent utiliser les classes UI Automation managées définies dans l’espace de noms System.Windows.Automation. Pour obtenir les dernières informations sur UI Automation, consultez API Windows Automation : UI Automation.

Les produits de technologie d’assistance et les scripts de test parcourent l’arborescence UI Automation pour recueillir des informations sur l’interface utilisateur et ses éléments.

L’arborescence UI Automation contient un élément racine (RootElement) qui représente le bureau actuel et dont les éléments enfants représentent des fenêtres d’application. Chacun de ces éléments enfants peut contenir des éléments représentant des composants d’interface utilisateur tels que des menus, boutons, barres d’outils et zones de liste. Ces éléments peuvent à leur tour contenir des éléments tels que des éléments de liste.

L’arborescence UI Automation n’est pas une structure fixe et est rarement visible dans son intégralité, car elle peut contenir des milliers d’éléments. Certains de ses composants sont créés à mesure des besoins et elle peut subir des modifications à mesure que des éléments sont ajoutés, déplacés ou supprimés.

Les fournisseurs UI Automation prennent en charge l’arborescence UI Automation en implémentant une navigation entre les éléments d’un fragment, qui se compose d’une racine (généralement hébergée dans une fenêtre) et d’une sous-arborescence. Cependant, les fournisseurs ne sont pas concernés par la navigation d’un contrôle à un autre. Cela est géré par le noyau UI Automation, à partir des informations issues des fournisseurs de fenêtres par défaut.

Affichages de l’arborescence Automation

L’arborescence UI Automation peut être filtrée pour créer des affichages qui contiennent uniquement les objets AutomationElement utiles à un client particulier. Cette approche permet aux clients de personnaliser la structure présentée via UI Automation en fonction de leurs besoins particuliers.

Le client peut personnaliser l’affichage de deux façons : par la portée et par le filtrage. La portée consiste à définir l’étendue de l’affichage à partir d’un élément de base. Par exemple, l’application peut rechercher uniquement les enfants directs du bureau ou tous les descendants d’une fenêtre de l’application. Le filtrage consiste à définir les types d’éléments qui doivent être inclus dans l’affichage.

Les fournisseurs UI Automation prennent en charge le filtrage moyennant la définition de propriétés sur les éléments, notamment les propriétés IsControlElementProperty et IsContentElementProperty.

UI Automation fournit trois affichages par défaut. Ces affichages sont définis en fonction du type de filtrage effectué ; l’étendue d’un affichage est définie par l’application. Par ailleurs, l’application peut appliquer d’autres filtres sur les propriétés, par exemple, pour inclure uniquement des contrôles activés dans un affichage de contrôle.

Affichage brut

L’affichage brut de l’arborescence UI Automation est l’arborescence complète des objets AutomationElement dont le bureau est la racine. L’affichage brut suit étroitement la structure de programmation native d’une application et est de ce fait l’affichage le plus détaillé. C’est aussi la base sur laquelle reposent les autres affichages de l’arborescence. Comme cet affichage dépend du framework d’interface utilisateur sous-jacent, l’affichage brut d’un bouton WPF sera différent de celui d’un bouton Win32.

L’affichage brut s’obtient en recherchant des éléments sans spécifier de propriétés ou en utilisant RawViewWalker pour parcourir l’arborescence.

Affichage de contrôle

L’affichage de contrôle de l’arborescence UI Automation permet au produit de technologie d’assistance de décrire plus facilement l’interface utilisateur à l’utilisateur final et d’aider ce dernier à interagir avec l’application, car il s’apparente de près à la structure de l’interface utilisateur perçue par un utilisateur final.

L’affichage de contrôle est un sous-ensemble de l’affichage brut. Il comprend tous les éléments d’interface utilisateur de l’affichage brut qu’un utilisateur final considérerait comme interactifs ou faisant partie de la structure logique du contrôle dans l’interface utilisateur. Parmi les éléments d’interface utilisateur qui font partie de la structure logique de l’interface utilisateur, mais qui ne sont pas eux-mêmes interactifs, il y a notamment les conteneurs d’éléments tels que les en-têtes, les barres d’outils, les menus et la barre d’état d’un affichage de liste. Les éléments non interactifs utilisés simplement à des fins de disposition ou de décoration n’apparaissent pas dans l’affichage de contrôle. Tel est le cas, par exemple, d’un volet servant uniquement à disposer les contrôles dans une boîte de dialogue mais qui ne contient lui-même aucune information. Les éléments non interactifs qui apparaissent dans l’affichage de contrôle sont des éléments graphiques associées aux informations et au texte statique d’une boîte de dialogue. Les éléments non interactifs qui sont inclus dans l’affichage de contrôle ne peuvent pas recevoir le focus clavier.

L’affichage de contrôle s’obtient en recherchant des éléments dont la propriété IsControlElement a la valeur true ou en utilisant ControlViewWalker pour parcourir l’arborescence.

Affichage de contenu

L’affichage du contenu de l’arborescence UI Automation est un sous-ensemble de l’affichage de contrôle. Il contient des éléments d’interface utilisateur qui communiquent les véritables informations d’une interface utilisateur, notamment les éléments d’interface utilisateur qui peuvent recevoir les éléments sélectionnés au clavier et du texte autre qu’une étiquette d’élément d’interface utilisateur. Par exemple, les valeurs contenues dans une zone de liste déroulante s’affichent dans l’affichage de contenu, car elles représentent les informations utilisées par un utilisateur final. Dans l’affichage du contenu, une zone de liste déroulante et une zone de liste sont toutes deux représentées sous forme de collection d’éléments d’interface utilisateur où un ou éventuellement plusieurs éléments peuvent être sélectionnés. Le fait qu’il y en a un toujours d’ouvert et un qui peut être développé et réduit est sans importance dans l’affichage de contenu, car il est conçu pour afficher les données (ou le contenu) présentées à l’utilisateur.

L’affichage de contenu s’obtient en recherchant des éléments dont la propriété IsContentElement a la valeur true ou en utilisant ContentViewWalker pour parcourir l’arborescence.

Voir aussi