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

Observação

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

O Automação da Interface do Usuário da Microsoft é a nova estrutura de acessibilidade do Microsoft Windows, disponível em todos os sistemas operacionais compatíveis com Windows Presentation Foundation (WPF).

A Automação da Interface do Usuário fornece acesso programático à maioria dos elementos de interface do usuário na área de trabalho, permitindo que produtos de tecnologia assistencial, como leitores de tela, forneçam informações sobre a interface do usuário para os usuários finais e manipulem a interface do usuário por meio diferente da entrada padrão. A automação da interface do usuário também permite que scripts de teste automatizados interajam com a interface do usuário.

Observação

A automação da interface do usuário não permite a comunicação entre processos iniciados por diferentes usuários por meio do comando Executar como.

Aplicativos cliente de automação da interface do usuário podem ser gravados com a garantia de que funcionarão em várias estruturas. O núcleo da automação da interface do usuário mascara diferenças nas estruturas por trás de várias partes da interface do usuário. Por exemplo, a propriedade Content de um botão WPF, a propriedade Caption de um botão Win32 e a propriedade ALT de uma imagem HTML são mapeadas para uma única propriedade, Name, na exibição Automação da Interface do Usuário.

Automação da Interface do Usuário oferece funcionalidade completa em sistemas operacionais Windows com suporte que executam o .NET Framework (consulte Requisitos do sistema .NET Framework ou versões do .NET Core a partir do .NET Core 3.0.

Os provedores de Automação da Interface do Usuário oferecem alguma compatibilidade para aplicativos cliente da Acessibilidade Ativa da Microsoft por meio de um serviço de ponte interno.

Provedores e clientes

A automação da interface do usuário tem quatro componentes principais, conforme mostrado na tabela a seguir.

Componente Descrição
API do provedor (UIAutomationProvider.dll e UIAutomationTypes.dll) Um conjunto de definições de interface implementadas por provedores de automação da interface do usuário, objetos que fornecem informações sobre elementos da interface do usuário e respondem à entrada programática.
API do cliente (UIAutomationClient.dll e UIAutomationTypes.dll) Um conjunto de tipos de código gerenciado que permite que aplicativos cliente da automação da interface do usuário obtenham informações sobre a interface do usuário e enviem entrada para controles.
UiAutomationCore.dll O código subjacente (às vezes, chamado de núcleo da automação da interface do usuário) que lida com a comunicação entre provedores e clientes.
UIAutomationClientsideProviders.dll Um conjunto de provedores de automação da interface do usuário para controles herdados padrão. (Os controles do WPF têm compatibilidade nativa para Automação da Interface do Usuário.) Essa compatibilidade está disponível automaticamente para aplicativos cliente.

No ponto de vista do desenvolvedor de software, há duas maneiras de usar Automação da Interface do Usuário: criar compatibilidade com controles personalizados (usando a API do provedor) e criar aplicativos que usam o núcleo da Automação da Interface do Usuário para se comunicar com elementos de interface do usuário (usando a API do cliente). Dependendo do foco, você deve consultar diferentes partes da documentação. Você pode aprender mais sobre os conceitos e obter conhecimento prático de instruções nas seções a seguir.

Seção Objeto Público
Conceitos básicos da automação da interface do usuário (esta seção) Visão geral ampla dos conceitos. Todos.
Provedores de automação da interface do usuário para código gerenciado Visões gerais e tópicos de instruções para ajudar a usar a API do provedor. Desenvolvedores de controle.
Clientes de automação da interface do usuário para código gerenciado Visões gerais e tópicos de instruções para ajudar a usar a API do cliente. Desenvolvedores de aplicativos clientes.
Padrões de controle da automação da interface do usuário Informações sobre como os padrões de controle devem ser implementados pelos provedores e qual funcionalidade está disponível para os clientes. Todos.
Padrões de texto da automação da interface do usuário Informações sobre como o padrão de controle de texto devem ser implementados pelos provedores e qual funcionalidade está disponível para os clientes. Todos.
Tipos de controle da automação da interface do usuário Informações sobre as propriedades e padrões de controle compatíveis com diferentes tipos de controle. Todos.

A tabela a seguir lista os namespaces da automação da interface do usuário, as DLLs que os contêm e o público que os usa.

Namespace DLLs referenciadas Público
System.Windows.Automation UIAutomationClientUIAutomationTypes Desenvolvedores de cliente de automação da interface do usuário. Usada para encontra o objetos AutomationElement, registrar para eventos da automação da interface do usuário e trabalhar com padrões de controle da automação da interface do usuário.
System.Windows.Automation.Provider UIAutomationProviderUIAutomationTypes Desenvolvedores de provedores de automação da interface do usuário para estruturas diferentes do WPF.
System.Windows.Automation.Text UIAutomationClientUIAutomationTypes Desenvolvedores de provedores de automação da interface do usuário para estruturas diferentes do WPF; usados para implementar o padrão de controle TextPattern.
System.Windows.Automation.Peers PresentationFramework Desenvolvedores de provedores de Automação da interface do usuário para WPF.

Modelo de automação de interface do usuário

A automação da interface do usuário expõe cada parte da interface do usuário para aplicativos cliente como um AutomationElement. Os elementos estão contidos em uma estrutura de árvore, com a área de trabalho como o elemento raiz. Os clientes podem filtrar a exibição bruta da árvore como uma exibição de controle ou uma exibição de conteúdo. Os aplicativos também podem criar exibições personalizadas.

os objetos AutomationElement expõem propriedades comuns dos elementos da interface do usuário que eles representam. Uma dessas propriedades é o tipo de controle, que define sua aparência e funcionalidade básicas como uma única entidade reconhecível: por exemplo, um botão ou caixa de seleção.

Além disso, os elementos expõem padrões de controle que fornecem propriedades específicas aos seus tipos de controle. Os padrões de controle também expõem métodos que permitem que os clientes obtenham mais informações sobre o elemento e forneçam entrada.

Observação

Não há uma correspondência de um para um entre tipos de controle e padrões de controle. Um padrão de controle ser apoiado por vários tipos de controle, e um controle pode ser compatível com vários padrões de controle, em que cada um deles expõe diferentes aspectos de seu comportamento. Por exemplo, uma caixa de combinação tem pelo menos dois padrões de controle: um que representa a capacidade de expandir e recolher e outro que representa o mecanismo de seleção. Para obter detalhes, consulte Automação da interface do usuário tipos de controle.

A automação da interface do usuário também fornece informações aos aplicativos cliente por meio de eventos. Ao contrário do WinEvents, os eventos da automação da interface do usuário não se baseiam em um mecanismo de transmissão. Clientes da automação da interface do usuário se registram para notificações de evento específicas e podem solicitar que propriedades da automação da interface do usuário específicas e informações de padrão de controle sejam passadas para seus manipuladores de eventos. Além disso, um evento da automação da interface do usuário contém uma referência ao elemento que o gerou. Os provedores podem melhorar o desempenho gerando eventos seletivamente, dependendo se algum cliente estiver escutando.

Confira também