Vue d'ensemble des fournisseurs UI Automation

Un fournisseur de UI Automation Microsoft est un objet logiciel qui expose un élément de l’interface utilisateur d’une application afin que les applications clientes d’accessibilité puissent récupérer des informations sur l’élément et appeler ses fonctionnalités. En général, chaque contrôle ou tout autre élément distinct d’une interface utilisateur a un fournisseur.

Microsoft inclut un fournisseur pour chacun des contrôles standard fournis avec Microsoft Win32, Windows Forms et Windows Presentation Foundation (WPF). Cela signifie que les contrôles standard sont automatiquement exposés aux clients UI Automation ; vous n’avez pas besoin d’implémenter d’interfaces d’accessibilité pour les contrôles standard.

Si votre application inclut des contrôles personnalisés, vous devez implémenter des fournisseurs UI Automation pour ces contrôles afin de les rendre accessibles aux applications clientes d’accessibilité. Vous devez également implémenter des fournisseurs pour tous les contrôles tiers qui n’incluent pas de fournisseur. Vous implémentez un fournisseur en implémentant des interfaces de fournisseur UI Automation et des interfaces de modèle de contrôle.

Cette rubrique fournit une vue d’ensemble de la façon dont les développeurs de contrôle implémentent UI Automation fournisseurs. Il comprend les sections suivantes.

Types de fournisseurs

UI Automation fournisseurs se répartissent en deux catégories : les fournisseurs côté serveur et les fournisseurs côté client (ou proxy).

Un fournisseur côté serveur est un objet, tel qu’un contrôle personnalisé, qui contient sa propre implémentation native des interfaces de fournisseur de UI Automation appropriées. Un fournisseur côté serveur communique avec les applications clientes au-delà de la limite de processus en exposant son implémentation des interfaces du fournisseur au cœur UI Automation, qui traite les demandes des clients. Pour plus d’informations sur les fournisseurs côté serveur, consultez Implémentation d’un fournisseur de Server-Side UI Automation.

Un fournisseur côté client, ou proxy, est un objet qui implémente UI Automation interfaces de fournisseur pour le compte d’un contrôle n’inclut pas une implémentation de fournisseur complète de sa propre. Sans proxy, un tel contrôle est en grande partie opaque pour UI Automation, qui peut fournir uniquement des informations de base disponibles à partir du handle de fenêtre (HWND), telles que l’emplacement du contrôle. En règle générale, les fournisseurs de proxy communiquent avec l’application au-delà de la limite de processus en envoyant et en recevant des messages Windows. Pour plus d’informations, consultez Implémentation d’un fournisseur de UI Automation Client-Side (proxy).

Concepts de fournisseur UI Automation

Cette section fournit de brèves explications sur certains concepts clés que vous devez comprendre pour pouvoir implémenter des fournisseurs UI Automation.

Éléments

UI Automation éléments sont des éléments de l’interface utilisateur (généralement des fenêtres ou des contrôles) visibles par UI Automation clients. Les fenêtres d’application, les volets, les boutons, les info-bulles, les zones de liste et les éléments de liste en sont des exemples.

UI Automation éléments sont exposés aux clients sous forme d’arborescence. UI Automation construit l’arborescence en naviguant d’un élément à l’autre. La navigation est activée par le fournisseur pour chaque élément. Chaque élément peut pointer vers son propre élément parent, ses éléments frères et ses premiers et derniers éléments enfants.

Un client peut voir l’arborescence UI Automation dans trois affichages principaux, comme décrit dans le tableau suivant :

Affichage Description
Affichage brut Inclut tous les éléments.
Vue de contrôle Inclut des éléments qui sont des contrôles.
Vue de contenu Inclut des éléments de contrôle qui transmettent des informations à l’utilisateur.

 

Il incombe à l’implémentation du fournisseur de définir un élément comme élément de contenu ou élément de contrôle. Les éléments de contrôle peuvent être ou non également des éléments de contenu, mais tous les éléments de contenu sont des éléments de contrôle.

Pour plus d’informations sur l’affichage client de l’arborescence, consultez UI Automation Vue d’ensemble de l’arborescence.

Frameworks

Une infrastructure est un composant qui gère les contrôles enfants, les tests de positionnement et le rendu dans une zone de l’écran. Par exemple, une fenêtre Win32, souvent appelée HWND, peut servir d’infrastructure qui contient plusieurs éléments UI Automation, tels qu’une barre de menus, une barre de status et des boutons.

Les contrôles de conteneur Win32, tels que les zones de liste et les contrôles d’arborescence, sont considérés comme des frameworks, car ils contiennent leur propre code pour le rendu des éléments enfants et l’exécution de tests d’accès. En revanche, une zone de liste WPF n’est pas une infrastructure, car le rendu et le test d’accès sont gérés par la fenêtre conteneur.

L’interface utilisateur d’une application peut être composée de différents frameworks. Par exemple, un HWND dans une application peut contenir du code HTML dynamique (DHTML), qui à son tour peut contenir un composant tel qu’une zone de liste déroulante dans un HWND.

Fragments

Une sous-arborescence complète d’éléments d’une infrastructure particulière est appelée fragment. L’élément au niveau du nœud racine de la sous-arborescence est appelé racine de fragment. Une racine de fragment n’a pas de parent, mais est hébergée dans un autre framework, généralement une fenêtre Win32 (HWND).

Hôtes

Le nœud racine de chaque fragment doit être hébergé dans un élément, généralement une fenêtre Win32 (HWND). Le bureau est une exception et il n’est hébergé dans aucun autre élément. L’hôte d’un contrôle personnalisé est le HWND du contrôle lui-même, et non la fenêtre d’application ou toute autre fenêtre pouvant contenir des groupes de contrôles de niveau supérieur.

L’hôte d’un fragment joue un rôle important dans l’offre des services UI Automation. Il permet la navigation vers la racine de fragment et fournit des propriétés par défaut afin que le fournisseur personnalisé n’ait pas à les implémenter.

Conceptuel

Implémentation d’un fournisseur de Client-Side UI Automation

Implémentation d’un fournisseur de Server-Side UI Automation

Vue d’ensemble de l’arborescence UI Automation