Visão Geral dos Provedores de Automação de Interface do Usuário

Um provedor do Microsoft Automação da Interface do Usuário é um objeto de software que expõe um elemento da interface do usuário de um aplicativo para que os aplicativos cliente de acessibilidade possam recuperar informações sobre o elemento e invocar sua funcionalidade. Em geral, cada controle ou outro elemento distinto em uma interface do usuário tem um provedor.

A Microsoft inclui um provedor para cada um dos controles padrão fornecidos com o Microsoft Win32, Windows Forms e Windows Presentation Foundation (WPF). Isso significa que os controles padrão são expostos automaticamente a clientes Automação da Interface do Usuário; você não precisa implementar nenhuma interface de acessibilidade para os controles padrão.

Se o aplicativo incluir controles personalizados, você precisará implementar provedores de Automação da Interface do Usuário para esses controles para torná-los acessíveis a aplicativos cliente de acessibilidade. Você também precisa implementar provedores para quaisquer controles de terceiros que não incluam um provedor. Implemente um provedor implementando interfaces de provedor de Automação da Interface do Usuário e interfaces de padrão de controle.

Este tópico fornece uma visão geral de como os desenvolvedores de controle implementam provedores de Automação da Interface do Usuário. Ele inclui as seções a seguir.

Tipos de provedores

Automação da Interface do Usuário provedores se enquadram em duas categorias: provedores do lado do servidor e provedores do lado do cliente (ou proxy).

Um provedor do lado do servidor é um objeto, como um controle personalizado, que contém sua própria implementação nativa das interfaces de provedor de Automação da Interface do Usuário relevantes. Um provedor do lado do servidor se comunica com aplicativos cliente no limite do processo expondo sua implementação das interfaces do provedor para o núcleo Automação da Interface do Usuário, quais serviços solicitam dos clientes. Para obter mais informações sobre provedores do lado do servidor, consulte Implementando um provedor de Server-Side Automação da Interface do Usuário.

Um provedor ou proxy do lado do cliente é um objeto que implementa Automação da Interface do Usuário interfaces de provedor em nome de um controle não inclui uma implementação completa do provedor por conta própria. Sem um proxy, esse controle é em grande parte opaco para Automação da Interface do Usuário, que só pode fornecer informações básicas disponíveis no identificador de janela (HWND), como o local do controle. Normalmente, os provedores de proxy se comunicam com o aplicativo no limite do processo enviando e recebendo mensagens Windows. Para obter mais informações, consulte Implementando um provedor de Automação da Interface do Usuário (proxy) Client-Side.

Conceitos do provedor de Automação da Interface do Usuário

Esta seção fornece breves explicações de alguns dos principais conceitos que você precisa entender para implementar provedores de Automação da Interface do Usuário.

Elementos

Automação da Interface do Usuário elementos são partes da interface do usuário, normalmente janelas ou controles, que são visíveis para Automação da Interface do Usuário clientes. Exemplos incluem janelas de aplicativos, painéis, botões, dicas de ferramentas, caixas de listagem e itens de lista.

Automação da Interface do Usuário elementos são expostos aos clientes como uma árvore. Automação da Interface do Usuário constrói a árvore navegando de um elemento para outro. A navegação é habilitada pelo provedor para cada elemento. Cada elemento pode apontar para seu próprio elemento pai, seus elementos irmãos e seus primeiros e últimos elementos filho.

Um cliente pode ver a árvore Automação da Interface do Usuário em três exibições principais, conforme descrito na tabela a seguir:

Visualizar Descrição
Exibição bruta Inclui todos os elementos.
Exibição de controle Inclui elementos que são controles.
Exibição de conteúdo Inclui elementos de controle que transmitem informações para o usuário.

 

É responsabilidade da implementação do provedor definir um elemento como um elemento de conteúdo ou um elemento de controle. Os elementos de controle podem ou não ser elementos de conteúdo, mas todos os elementos de conteúdo são elementos de controle.

Para obter mais informações sobre a exibição do cliente da árvore, consulte Automação da Interface do Usuário Visão geral da árvore.

Estruturas

Uma estrutura é um componente que gerencia controles filho, teste de clique e renderização em uma área da tela. Por exemplo, uma janela Do Win32, geralmente conhecida como HWND, pode servir como uma estrutura que contém vários elementos Automação da Interface do Usuário, como uma barra de menus, uma barra de status e botões.

Controles de contêiner do Win32, como caixas de listagem e controles de exibição de árvore, são considerados estruturas porque contêm seu próprio código para renderizar itens filho e executar testes de clique neles. Por outro lado, uma caixa de listagem do WPF não é uma estrutura, pois a renderização e o teste de ocorrência estão sendo tratados pela janela que contém.

A interface do usuário em um aplicativo pode ser composta por estruturas diferentes. Por exemplo, um HWND em um aplicativo pode conter UM HTML Dinâmico (DHTML) que, por sua vez, pode conter um componente, como uma caixa de combinação em um HWND.

Fragmentos

Uma subárvore completa de elementos de uma estrutura específica é chamada de fragmento. O elemento no nó raiz da subárvore é chamado de raiz de fragmento. Uma raiz de fragmento não tem um pai, mas é hospedada em alguma outra estrutura, geralmente uma HWND (janela Win32).

Hosts

O nó raiz de cada fragmento deve ser hospedado em um elemento, geralmente uma HWND (janela Win32). A exceção é a área de trabalho, que não está hospedada em nenhum outro elemento. O host de um controle personalizado é o HWND do próprio controle, não a janela do aplicativo ou qualquer outra janela que possa conter grupos de controles de nível superior.

O host de um fragmento desempenha um papel importante no fornecimento de serviços Automação da Interface do Usuário. Ele habilita a navegação para a raiz do fragmento e fornece algumas propriedades padrão para que o provedor personalizado não precise implementá-las.

Conceitual

Implementando um provedor de Client-Side Automação da Interface do Usuário

Implementando um provedor de Server-Side Automação da Interface do Usuário

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