Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Produtos de tecnologia assistiva e scripts de teste navegam na árvore de automação da interface do usuário da Microsoft para coletar informações sobre a interface do usuário e seus elementos.
Na árvore de Automação da Interface do Usuário há um elemento raiz que representa a janela da área de trabalho do Windows ("a área de trabalho") e cujos elementos filho representam as janelas do aplicativo. Cada um desses elementos filho pode conter elementos que representam partes da interface do utilizador, como menus, botões, barras de ferramentas e listas. Esses elementos podem conter elementos como itens de lista.
A árvore de automação da interface do usuário não é uma estrutura fixa. Raramente é visto na sua totalidade, porque pode conter milhares de elementos. Partes da árvore de automação da interface do usuário são criadas conforme um cliente precisa delas, e a estrutura da árvore muda à 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 os itens em um fragmento. Um fragmento é uma subárvore completa de elementos de uma estrutura específica, e tem um elemento raiz (chamado de raiz do fragmento) que normalmente é hospedado em uma janela.
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, que usa informações dos provedores de janela padrão.
Este tópico contém as seguintes seções.
Exibições da árvore de automação da interface do usuário
A árvore de Automação da Interface do Usuário pode ser filtrada para criar exibições que contenham apenas os elementos de Automação da Interface do Usuário 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 pode personalizar a visualização definindo o escopo e filtrando. O escopo é definir a extensão da visão, a partir de um elemento base. Por exemplo, a aplicação pode querer encontrar apenas subelementos diretos do desktop ou todos os descendentes de uma janela de aplicação. Filtrar é definir os tipos de elementos incluídos na vista.
Os provedores de automação da interface do usuário oferecem suporte à filtragem definindo propriedades em elementos, incluindo as IUIAutomationElement::IsControlElement e IUIAutomationElement::IsContentElement propriedades.
A Automação da Interface do Usuário fornece três modos de exibição padrão: modo de exibição bruto, modo de exibição de controle e modo de exibição de conteúdo. Essas exibições são definidas pelo tipo de filtragem executada. O escopo de qualquer exibição é definido pelo aplicativo. 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 visualização bruta da árvore de Automação da Interface do Usuário é a árvore completa de elementos de automação cuja raiz é a área de trabalho. A visualização bruta segue de perto a estrutura programática nativa de um aplicativo e é a visualização mais detalhada disponível. É também a base sobre a qual são construídas as outras perspetivas da árvore. Como esse modo de exibição depende da estrutura subjacente da interface do usuário, o modo de exibição bruto de um botão do Windows Presentation Foundation (WPF) tem um modo de exibição bruto diferente de um botão do Microsoft Win32.
A visualização bruta é obtida pesquisando elementos sem especificar propriedades ou usando o IUIAutomation::RawViewWalker obter uma interfaceIUIAutomationTreeWalkerpara navegar na árvore.
Vista de Controlo
A vista de controlo é um subconjunto da vista bruta. Ele inclui apenas os itens da interface do usuário que têm a propriedade IUIAutomationElement::IsControlElement definida como TRUE.
A exibição de controle inclui os itens da interface do usuário que fornecem informações ao usuário ou permitem que o usuário execute uma ação. Esses são os itens da interface do usuário mais interessantes para aplicativos de teste automatizados.
A exibição de controle também inclui itens não interativos da interface do usuário que contribuem para a estrutura lógica da interface do usuário. Isso inclui contêineres de itens, como cabeçalhos de exibição de lista, barras de ferramentas, menus e a barra de status. Outros itens não interativos que aparecem na exibição de controle são gráficos com informações e texto estático em uma caixa de diálogo.
Itens não interativos usados apenas para layout ou fins decorativos, como painéis usados para dispor controles em uma caixa de diálogo, não aparecem na exibição de controle.
A vista de controle da árvore de automação da interface do utilizador corresponde de perto à estrutura da interface percebida por um utilizador final. Isso torna mais fácil para o produto de tecnologia assistiva descrever a interface do usuário para o usuário final e ajudar esse usuário final a interagir com o aplicativo.
A vista de controlo é obtida ao procurar elementos que tenham a propriedade IUIAutomationElement::IsControlElement definida como true, ou ao usar ControlViewWalker para obter uma interface IUIAutomationTreeWalker para navegar na árvore.
Visualização de conteúdo
A visualização de conteúdo da Árvore de Automação da Interface do Usuário é um subconjunto da visualização de controle. Inclui apenas os itens da interface do utilizador que têm as propriedades IUIAutomationElement::IsControlElement e IUIAutomationElement::IsContentElement definidas como TRUE.
A exibição de conteúdo contém itens da interface do usuário que transmitem as informações reais 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. Estes são os itens da interface do usuário que são mais interessantes para um aplicativo leitor de tela. Por exemplo, os valores em uma caixa de combinação suspensa aparecem na exibição de conteúdo porque os valores representam 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 mais de um item pode ser selecionado. O facto de um item estar sempre aberto e um item poder ser expandido e recolhido é irrelevante na vista de conteúdo porque está concebido para mostrar os dados ou o conteúdo que está a ser apresentado ao utilizador.
A visualização de conteúdo é obtida pesquisando elementos que possuam tanto a propriedade IsControlElement quanto a propriedade CurrentIsContentElement definidas como TRUE, ou usando o IUIAutomation::ContentViewWalker para obter uma interface IUIAutomationTreeWalker para navegar na árvore.
As imagens a seguir mostram as diferenças entre o modo de exibição de controle e o modo de exibição de conteúdo. A primeira imagem mostra uma caixa de combinação simples com três itens na lista suspensa. A segunda imagem mostra como os itens da interface do utilizador da caixa de combinação aparecem nas visualizações de controlo e conteúdo da aplicação UISpy.exe.
Tópicos relacionados
-
Conceptual