Partilhar via


Visão geral da árvore de automação da interface do usuário

Nota

Esta documentação destina-se a desenvolvedores do .NET Framework que desejam usar as classes de automação da interface do usuário gerenciadas definidas no System.Windows.Automation namespace. Para obter as informações mais recentes sobre a automação da interface do usuário, consulte API de automação do Windows: automação da interface do usuário.

Produtos de tecnologia assistiva e scripts de teste navegam na árvore de automação da interface do usuário para coletar informações sobre a interface do usuário (UI) e seus elementos.

Dentro da árvore de automação da interface do usuário, há um elemento raiz (RootElement) que representa a área de trabalho atual e cujos elementos filho representam as janelas do aplicativo. Cada um desses elementos filho pode conter elementos que representam partes da interface do usuário, como menus, botões, barras de ferramentas e caixas de listagem. Esses elementos, por sua vez, podem conter elementos como itens de lista.

A árvore de automação da interface do usuário não é uma estrutura fixa e raramente é vista em sua totalidade, pois pode conter milhares de elementos. Partes dele são construídas conforme necessário, e podem sofrer alterações à medida que os elementos são adicionados, movidos ou removidos.

Os provedores de Automação da Interface do Usuário oferecem suporte à árvore de Automação da Interface do Usuário implementando a navegação entre itens dentro de um fragmento, que consiste em uma raiz (geralmente hospedada em uma janela) e uma subárvore. No entanto, os provedores não estão preocupados com a navegação de um controle para outro. Isso é gerenciado pelo núcleo de automação da interface do usuário, usando informações dos provedores de janela padrão.

Vistas da árvore de automação

A árvore de automação da interface do usuário pode ser filtrada para criar exibições que contenham apenas os AutomationElement objetos relevantes para um cliente específico. Essa abordagem permite que os clientes personalizem a estrutura apresentada por meio da automação da interface do usuário de acordo com suas necessidades específicas.

O cliente tem duas maneiras de personalizar a visualização: por escopo e por filtragem. O escopo é definir a extensão da exibição, a partir de um elemento base: por exemplo, o aplicativo pode querer encontrar apenas filhos diretos da área de trabalho ou todos os descendentes de uma janela do aplicativo. Filtrar é definir os tipos de elementos que devem ser incluídos na exibição.

Os provedores de automação da interface do usuário oferecem suporte à filtragem definindo propriedades em elementos, incluindo as IsControlElementProperty propriedades e IsContentElementProperty .

A Automação da Interface do Usuário fornece três modos de exibição padrão. Essas exibições são definidas pelo tipo de filtragem realizada; O escopo de qualquer exibição é definido pelo aplicativo. Além disso, o aplicativo pode aplicar outros filtros nas propriedades; por exemplo, para incluir apenas controles habilitados em um modo de exibição de controle.

Vista bruta

A exibição bruta da árvore de automação da interface do usuário é a árvore completa de objetos para os quais a área de AutomationElement trabalho é a raiz. A visualização bruta segue de perto a estrutura programática nativa de um aplicativo e, portanto, é a visualização mais detalhada disponível. É também a base sobre a qual as outras vistas da árvore são construídas. Como essa exibição depende da estrutura subjacente da interface do usuário, a exibição bruta de um botão WPF terá uma exibição bruta diferente de um botão Win32.

A visualização bruta é obtida pesquisando elementos sem especificar propriedades ou usando o RawViewWalker para navegar na árvore.

Vista de Controlo

A exibição de controle da árvore de automação da interface do usuário simplifica a tarefa do produto de tecnologia assistiva de descrever a interface do usuário para o usuário final e ajudar esse usuário final a interagir com o aplicativo, pois ele mapeia de perto a estrutura da interface do usuário percebida por um usuário final.

A vista de controlo é um subconjunto da vista bruta. Ele inclui todos os itens da interface do usuário da exibição bruta que um usuário final entenderia como interativo ou contribuindo para a estrutura lógica do controle na interface do usuário. Exemplos de itens da interface do usuário que contribuem para a estrutura lógica da interface do usuário, mas não são interativos, são contêineres de itens, como cabeçalhos de exibição de lista, barras de ferramentas, menus e a barra de status. Itens não interativos usados simplesmente para layout ou fins decorativos não serão vistos na visualização de controle. Um exemplo é um painel que foi usado apenas para dispor os controles em uma caixa de diálogo, mas não contém nenhuma informação. Os itens não interativos que serão vistos na visualização de controle são gráficos com informações e texto estático em uma caixa de diálogo. Os itens não interativos incluídos na vista de controlo não podem receber o foco do teclado.

A exibição de controle é obtida pesquisando elementos que têm a IsControlElement propriedade definida como true, ou usando o ControlViewWalker para navegar na árvore.

Visualização de conteúdo

A exibição de conteúdo da árvore de Automação da Interface do Usuário é um subconjunto da exibição de controle. Ele contém itens da interface do usuário que transmitem as informações verdadeiras em uma interface do usuário, incluindo itens da interface do usuário que podem receber o foco do teclado e algum texto que não é um rótulo em um item da interface do usuário. Por exemplo, os valores em uma caixa de combinação suspensa aparecerão na exibição de conteúdo porque representam as informações que estão sendo usadas por um usuário final. Na exibição de conteúdo, uma caixa de combinação e uma caixa de listagem são representadas como uma coleção de itens da interface do usuário onde um, ou talvez mais de um, item pode ser selecionado. O fato de que um está sempre aberto e pode expandir e recolher é irrelevante na visualização de conteúdo porque é projetado para mostrar os dados, ou conteúdo, que está sendo apresentado ao usuário.

A exibição de conteúdo é obtida pesquisando elementos que têm a IsContentElement propriedade definida como true, ou usando o ContentViewWalker para navegar na árvore.

Consulte também