Navigation via le test d’accès et l’emplacement de l’écran

Pour localiser les enfants d’un objet ou pour déterminer la taille d’un objet, les clients peuvent atteindre des points de test à l’écran. Deux méthodes sont disponibles :

Utilisation de IAccessible::accHitTest

Pour déterminer si un point se trouve dans un objet, au sein de son enfant ou de l’un ou l’autre, les clients appellent la méthode IAccessible::accHitTest de l’objet parent, en passant les coordonnées d’écran du point à tester. La liste suivante décrit certains scénarios classiques :

  • Si les enfants de l’objet se chevauchent à un point spécifié, IAccessible::accHitTest récupère l’enfant le plus haut qui semble occuper visuellement l’espace.
  • Si une fenêtre couvre un enfant ou si l’enfant est clippé par le parent, le test du point couvert récupère l’enfant même s’il n’est pas visible.
  • Si l’enfant trouvé au point spécifié est un objet accessible, par opposition à un élément enfant, la méthode retourne l’interface IDispatch de l’enfant.

Utilisation de IAccessible::accLocation

Pour obtenir l’emplacement d’écran d’un objet ou d’un des enfants de l’objet, les clients appellent IAccessible::accLocation. Cette méthode retourne les coordonnées du rectangle englobant de l’objet spécifié. Si l’objet n’a pas la forme d’un rectangle, la méthode retourne les coordonnées du plus petit rectangle qui englobe l’objet entier.

L’illustration suivante montre la relation entre la région d’un objet non rectangulaire et son rectangle englobant.

illustration montrant la région d’un objet nonrectangulaire (un cercle) et son rectangle englobant.

Notes

IAccessible::accHitTest est plus précis que IAccessible::accLocation , car il permet aux clients de déterminer l’emplacement des objets pixel par pixel plutôt qu’avec des rectangles englobants. Cette précision est utile, par exemple, lorsqu’une application collecte des informations en suivant l’emplacement du pointeur de la souris.