Compartilhar via


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

Observação

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

A Automação da Interface do Usuário da Microsoft é a nova estrutura de acessibilidade do Microsoft Windows, disponível em todos os sistemas operacionais que dão suporte ao WPF (Windows Presentation Foundation).

A Automação de Interface do Usuário fornece acesso programático à maioria dos elementos da interface do usuário na área de trabalho, permitindo que produtos de tecnologia adaptativa, 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 meios diferentes da entrada padrão. A Automação de Interface do Usuário também permite que scripts de teste automatizados interajam com a interface do usuário.

Observação

A Automação de UI não habilita a comunicação entre processos iniciados por diferentes usuários por meio do comando Executar como.

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

A Automação de Interface do Usuário fornece funcionalidade completa em sistemas operacionais Windows compatíveis executando o .NET Framework (consulte os requisitos do sistema .NET Framework ou versões do .NET Core começando com o .NET Core 3.0.

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

Provedores e clientes

A Automação de 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 que são implementadas por provedores de Automação de 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 os aplicativos cliente da Automação de Interface do Usuário obtenham informações sobre a interface do usuário e enviem entradas para controles.
UiAutomationCore.dll O código subjacente (às vezes chamado de núcleo de 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 suporte nativo para a Automação da Interface do Usuário.) Esse suporte está disponível automaticamente para aplicativos cliente.

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

Seção Assunto Público
Conceitos básicos da automação da interface do usuário (esta seção) Visão geral ampla dos conceitos. Todas.
provedores de automação de interface do usuário para de código gerenciado Visão geral e tópicos de instruções para ajudá-lo a usar a API do provedor. Desenvolvedores de controle.
Clientes de Automação de Interface do Usuário para Código Gerenciado Visão geral e tópicos de instruções para ajudá-lo a usar a API do cliente. Desenvolvedores de aplicativos cliente.
padrões de controle de 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. Todas.
de padrão de texto de automação da interface do usuário Informações sobre como o padrão de controle de texto deve ser implementado pelos provedores e qual funcionalidade está disponível para os clientes. Todas.
Tipos de Controle de Automação da Interface do Usuário Informações sobre as propriedades e padrões de controle compatíveis com diferentes tipos de controle. Todas.

A tabela a seguir lista os namespaces de 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 de conteúdo. Os aplicativos também podem criar exibições personalizadas.

AutomationElement os objetos expõem propriedades comuns dos elementos de interface do usuário que eles representam. Uma dessas propriedades é o tipo de controle, que define sua aparência básica e funcionalidade 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 para 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 um-para-um entre tipos de controle e padrões de controle. Um padrão de controle pode ser suportado por vários tipos de controle e um controle pode dar suporte a vários padrões de controle, 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 tipos de controle de automação da interface do usuário.

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 de Automação da Interface do Usuário não são baseados em um mecanismo de transmissão. Os clientes de Automação da Interface do Usuário se registram para notificações de eventos específicas e podem solicitar que propriedades específicas da Automação da Interface do Usuário 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 aumentando os eventos seletivamente, dependendo se algum cliente está escutando.

Consulte também