Navegação por meio do teste de ocorrência e do local da tela
Para localizar os filhos de um objeto ou determinar o tamanho de um objeto, os clientes podem atingir pontos de teste na tela. Dois métodos estão disponíveis:
Usando IAccessible::accHitTest
Para identificar se um ponto está dentro de um objeto, dentro de seu filho ou nenhum dos dois, os clientes chamam o método IAccessible::accHitTest do objeto pai, passando as coordenadas de tela do ponto a ser testado. A lista a seguir descreve alguns cenários típicos:
- Se os filhos do objeto se sobrepõem em um ponto especificado, IAccessible::accHitTest recupera o filho mais alto que visualmente parece ocupar o espaço.
- Se uma janela cobrir um filho ou se o filho for recortado pelo pai, o teste de clique no ponto coberto recuperará o filho mesmo que ele não esteja visível.
- Se o filho encontrado no ponto especificado for um objeto acessível, em vez de um elemento filho, o método retornará a interface IDispatch do filho.
Usando IAccessible::accLocation
Para obter o local da tela de um objeto ou um dos filhos do objeto, os clientes chamam IAccessible::accLocation. Esse método retorna as coordenadas do retângulo delimitador do objeto especificado. Se o objeto não tiver a forma de um retângulo, o método retornará as coordenadas do menor retângulo que abrange todo o objeto.
A ilustração a seguir mostra a relação entre a região não retangular de um objeto e seu retângulo delimitador.
Observação
IAccessible::accHitTest é mais preciso do que IAccessible::accLocation porque permite que os clientes determinem o local dos objetos em uma base pixel a pixel em vez de com retângulos delimitador. Essa precisão é útil, por exemplo, quando um aplicativo está coletando informações rastreando o local do ponteiro do mouse.