Microsoft Active Accessibility and UI Automation Compared
A API de Automação do Windows consiste em duas tecnologias: Microsoft Active Accessibility e Microsoft UI Automation. A Acessibilidade Ativa da Microsoft é a tecnologia de acessibilidade herdada que foi introduzida como um suplemento de plataforma para Windows 95, enquanto a Automação da Interface do Usuário é uma tecnologia mais recente e mais capaz que supera as limitações inerentes à Acessibilidade Ativa da Microsoft.
Este tópico fornece resumos das principais diferenças entre a Acessibilidade Ativa da Microsoft e a Automação da Interface do Usuário. Ele inclui as seguintes seções:
- princípios básicos de design
- propriedades e padrões de controle
- funções MSAA e padrões de controle de automação de interface do usuário
- de navegação do modelo de objeto
- de extensibilidade do modelo de objeto
- transição do MSAA
- Escolhendo a Acessibilidade Ativa da Microsoft, a Automação da Interface do Usuário ou o IAccessibleEx
- tópicos relacionados
Princípios básicos de design
Embora a Acessibilidade Ativa da Microsoft e a Automação de Interface do Usuário sejam duas tecnologias diferentes, os princípios básicos de design são semelhantes. A finalidade de ambas as tecnologias é expor informações avançadas sobre os elementos de interface do usuário usados em aplicativos do Windows. Os desenvolvedores de ferramentas de acessibilidade podem usar essas informações para criar software que torna os aplicativos em execução no Windows mais acessíveis para pessoas com deficiência visual, auditiva ou de movimento.
Tanto a Acessibilidade Ativa da Microsoft quanto a Automação de Interface do Usuário expõem o modelo de objeto da interface do usuário como uma árvore hierárquica, com raiz na área de trabalho. O Microsoft Active Accessibility representa elementos de interface do usuário individuais como objetos acessíveise a Automação de Interface do Usuário os representa como elementos de automação . Ambos se referem à ferramenta de acessibilidade ou ao programa de automação de software como o cliente . No entanto, a Acessibilidade Ativa da Microsoft refere-se ao aplicativo ou controle que oferece a interface do usuário para acessibilidade como o servidor , enquanto a Automação da Interface do Usuário se refere a isso como o provedor de .
Propriedades e padrões de controle
O Microsoft Active Accessibility oferece uma única interface COM (Component Object Model) com um conjunto fixo e pequeno de propriedades. A Automação de Interface do Usuário oferece um conjunto mais avançado de propriedades, bem como um conjunto de interfaces estendidas chamada padrões de controle para manipular objetos acessíveis de maneiras que a Acessibilidade Ativa da Microsoft não pode.
Para obter mais informações, consulte Visão geral das propriedades de automação da interface do usuário e visão geral dos padrões de controle de automação da interface do usuário.
Funções MSAA e padrões de controle de automação de interface do usuário
A Microsoft projetou o modelo de objeto microsoft Active Accessibility quase ao mesmo tempo em que o Windows 95 foi lançado. O modelo é baseado em "funções" definidas há uma década e você não pode dar suporte a novos comportamentos de interface do usuário ou mesclar duas ou mais funções juntas. Não há nenhum modelo de objeto de texto, por exemplo, para ajudar as tecnologias adaptativas a lidar com conteúdo complexo da Web. A Automação de Interface do Usuário supera essas limitações introduzindo padrões de controle que permitem aos objetos dar suporte a mais de uma função, e o padrão de controle Texto de Automação de Interface do Usuário oferece um modelo de objeto de texto completo.
Navegação do modelo de objeto
Outra limitação da Acessibilidade Ativa da Microsoft envolve navegar no modelo de objeto. O Microsoft Active Accessibility representa a interface do usuário como uma hierarquia de objetos acessíveis. Os clientes navegam de um objeto acessível para outro usando interfaces e métodos disponíveis no objeto acessível. Os servidores podem expor os filhos de um objeto acessível com propriedades da interfaceIAccessibleou com a interface COM IEnumVARIANT padrão. Os clientes, no entanto, devem ser capazes de lidar com ambas as abordagens para qualquer servidor. Essa ambiguidade significa um trabalho extra para implementadores de cliente e modelos de objeto acessíveis desfeitos para implementadores de servidor.
A Automação de Interface do Usuário representa a interface do usuário como uma árvore hierárquica de elementos de automação e fornece uma única interface para navegar na árvore. Os clientes podem personalizar a exibição de elementos na árvore por meio de escopo e filtragem.
Extensibilidade do modelo de objeto
As propriedades e as funções de Acessibilidade Ativa da Microsoft não podem ser estendidas sem interromper ou alterar a especificação da interface com IAccessible. O resultado é que o novo comportamento de controle não pode ser exposto por meio do modelo de objeto; ele tende a ser estático.
Com a Automação da Interface do Usuário, à medida que novos elementos de interface do usuário são criados, os desenvolvedores de aplicativos podem introduzir propriedades personalizadas, padrões de controle e eventos para descrever os novos elementos. Para obter mais informações, consulte propriedades personalizadas, eventos e padrões de controle.
Transição do MSAA
A estrutura da API de Automação do Windows fornece suporte para a transição de servidores de Acessibilidade Ativa da Microsoft para provedores de Automação de Interface do Usuário. A interface IAccessibleEx permite que o suporte a propriedades específicas da Automação da Interface do Usuário e padrões de controle sejam adicionados aos servidores herdados do Microsoft Active Accessibility sem a necessidade de reescrever toda a implementação. A interface IAccessibleEx também permite que clientes de Acessibilidade Ativa da Microsoft em processo acessem diretamente interfaces do provedor de Automação de Interface do Usuário, em vez de por meio de interfaces de cliente da Automação da Interface do Usuário. Para obter mais informações, consulte A interface IAccessibleEx.
Escolhendo a Acessibilidade Ativa da Microsoft, a Automação da Interface do Usuário ou o IAccessibleEx
Esta seção ajuda você a determinar qual solução de API de Automação do Windows usar para implementar um produto de tecnologia adaptativa ou tornar seu aplicativo acessível a produtos de tecnologia adaptativa.
Novos aplicativos e controles
Se você estiver desenvolvendo um novo aplicativo ou controle, a Microsoft recomenda usar a Automação da Interface do Usuário. Embora a Acessibilidade Ativa da Microsoft possa ser mais fácil de implementar a curto prazo, as limitações inerentes a essa tecnologia, como seu modelo de objeto antigo e a incapacidade de dar suporte a novos comportamentos de interface do usuário ou funções de mesclagem, tornam-no mais difícil e caro a longo prazo. Essas limitações se tornam especialmente aparentes ao introduzir novos controles.
O modelo de objeto de Automação de Interface do Usuário é mais fácil de usar e é mais flexível do que o da Acessibilidade Ativa da Microsoft. Os elementos de automação da interface do usuário refletem a evolução das interfaces do usuário e os desenvolvedores podem definir padrões, propriedades e eventos de controle personalizados da Automação da Interface do Usuário.
A Acessibilidade Ativa da Microsoft tende a ser executada lentamente para clientes que estão sem processo. Para melhorar o desempenho, os desenvolvedores de programas de ferramentas de acessibilidade geralmente optam por conectar e executar seus programas no processo de aplicativo de destino: uma abordagem extremamente difícil e arriscada. A Automação de Interface do Usuário é muito mais fácil de implementar para clientes fora de processo e oferece um desempenho e confiabilidade muito melhores.
Implementações existentes de acessibilidade ativa da Microsoft
Se você estiver atualizando um aplicativo ou controle existente baseado na Acessibilidade Ativa da Microsoft, considere adicionar suporte à Automação de Interface do Usuário implementando a interface IAccessibleEx. Primeiro, verifique se seu aplicativo ou controle atende aos seguintes requisitos:
- A hierarquia de objetos acessíveis do servidor microsoft active accessibility de linha de base deve ser bem organizada e livre de erros. IAccessibleEx não pode corrigir problemas com hierarquias de objeto acessíveis existentes.
- Sua implementação IAccessibleEx deve estar em conformidade com a especificação de Acessibilidade Ativa da Microsoft e com a Especificação de Automação da Interface do Usuário. A Microsoft fornece um conjunto de ferramentas para validar a conformidade com ambas as especificações. Para obter mais informações, consulte Testando parade acessibilidade.
Se qualquer um desses requisitos não for atendido, considere implementar a Automação da Interface do Usuário nativamente. Você pode manter implementações herdadas do servidor Microsoft Active Accessibility para compatibilidade com versões anteriores, se necessário. Do ponto de vista do cliente de Automação da Interface do Usuário, não há diferença entre os provedores de Automação de Interface do Usuário e os servidores de Acessibilidade Ativa da Microsoft que implementam IAccessibleEx corretamente.
Para obter mais informações, consulte A interface IAccessibleEx.
Tópicos relacionados
-
Visão geral da API de Automação do Windows