Compartilhar via


IAccessible Proxies

proxies de IAccessible fornecem informações de acessibilidade padrão para elementos de interface do usuário padrão: controles DE USUÁRIO, menus USER e controles comuns de COMCTL e COMCTL32. Esse suporte padrão é exposto por meio 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 deIAccessible, 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 IAccessible. No entanto, se o valor retornado for zero, Oleacc.dll fornecerá um objeto proxy para o elemento da interface do usuário e tentará retornar informações significativas em seu nome. Para obter mais informações sobre WM_GETOBJECT, consulte How WM_GETOBJECT Works.

Quais informações são expostas

Oleacc.dll usa o nome da classe Windows do elemento de interface do usuário para determinar quais informações devem ser expostas para cada uma de suas propriedades deIAccessiblee como coletar essas informações. Por exemplo, Oleacc.dll chama a função GetWindowText para recuperar a propriedadenome dopara um botão de push padrão, mas chama essa mesma função para recuperar a propriedadevalorpara um controle de edição padrão. Na verdade, Oleacc.dll está mapeando cada método IAccessible para uma mensagem ou chamada de função específica do controle ou do Microsoft Win32. Usando essa caixa especial baseada em nome de classe, ela pode retornar informações significativas por meio de proxies de IAccessible sem qualquer suporte de Acessibilidade Ativa da Microsoft no servidor.

Os 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 subclasse, que não armazenam suas próprias cadeias de caracteres (ausência do estilo HASSTRINGS) ou que são desenhados 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, soluções alternativas estabelecidas ou o uso da Anotação Dinâmica, permitem que o servidor coopere com os proxies fornecidos por 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 da janela.