Compartilhar via


IAccessible Proxies

Os proxies IAccessible fornecem informações de acessibilidade padrão para elementos de interface do usuário padrão: controles USER, menus USER e controles comuns de COMCTL e COMCTL32. Esse suporte padrão é exposto por meio de objetos IAccessible criados por Oleacc.dll e oferece suporte à Acessibilidade Ativa da Microsoft sem trabalho adicional de desenvolvimento de servidor. Em seguida, o servidor pode usar a API de Anotação Dinâmica para modificar grande parte das informações expostas por Oleacc.dll, mas não tem controle completo.

Criando um proxy

Para determinar se um elemento de interface do usuário dá suporte nativo à interface IAccessible , Oleacc.dll envia uma mensagem WM_GETOBJECT . Um valor retornado diferente de zero significa que o elemento dá suporte nativo à Acessibilidade Ativa da Microsoft e fornece seu próprio suporte ao IAccessible . No entanto, se o valor retornado for zero, Oleacc.dll fornecerá um objeto proxy para o elemento de interface do usuário e tentará retornar informações significativas em seu nome. Para obter mais informações sobre WM_GETOBJECT, consulte Como WM_GETOBJECT funciona.

Quais informações são expostas

Oleacc.dll usa o nome de classe do Windows do elemento de interface do usuário para determinar quais informações devem ser expostas para cada uma de suas propriedades IAccessible e como coletar essas informações. Por exemplo, Oleacc.dll chama a função GetWindowText para recuperar a propriedade Name para um botão de push padrão, mas chama essa mesma função para recuperar a propriedade Value para um controle de edição padrão. Na verdade, Oleacc.dll está mapeando cada método IAccessible para um Microsoft Win32 apropriado ou chamada de função ou mensagem específica do controle. Usando esse uso de maiúsculas e minúsculas especiais baseadas em nome de classe, ele pode retornar informações significativas por meio de proxies IAccessible sem qualquer suporte de Acessibilidade Ativa da Microsoft no servidor.

Aplicativos criados com elementos de interface do usuário padrão normalmente recebem suporte completo à Acessibilidade Ativa da Microsoft sem trabalho de desenvolvimento adicional. As exceções a essa regra são controles que foram subclasses, que não armazenam suas próprias cadeias de caracteres (ausência do estilo HASSTRINGS ) ou que são desenhadas pelo proprietário. Nesses casos, Oleacc.dll não pode coletar as informações necessárias porque as informações são armazenadas fora do controle. No entanto, em muitos desses cenários, as soluções alternativas estabelecidas ou o uso da Anotação Dinâmica permitem que o servidor coopere com os proxies fornecidos pelo Oleacc.dll.

Objetos proxy genéricos

Se Oleacc.dll não reconhecer o nome da classe do elemento de interface do usuário, ele criará um proxy genérico que expõe o máximo de informações possível. No máximo, isso inclui o retângulo delimitador do objeto, o objeto pai, o nome (de WM_GETTEXT) e os filhos na hierarquia de janelas.