Navigazione tramite hit testing e posizione dello schermo
Per individuare gli elementi figlio di un oggetto o per determinare le dimensioni di un oggetto, i client possono raggiungere i punti di test sullo schermo. Sono disponibili due metodi:
Uso di IAccessible::accHitTest
Per identificare se un punto si trova all'interno di un oggetto, all'interno del relativo elemento figlio o nessuno dei due, i client chiamano il metodo IAccessible::accHitTest dell'oggetto padre, passando le coordinate dello schermo del punto da sottoporre a hit test. L'elenco seguente descrive alcuni scenari tipici:
- Se gli elementi figlio dell'oggetto si sovrappongono a un punto specificato, IAccessible::accHitTest recupera l'elemento figlio più in alto che appare visivamente per occupare lo spazio.
- Se una finestra copre un elemento figlio o se l'elemento figlio viene ritagliato dall'elemento padre, l'hit testing del punto coperto recupera l'elemento figlio anche se non è visibile.
- Se l'elemento figlio trovato nel punto specificato è un oggetto accessibile, anziché un elemento figlio, il metodo restituisce l'interfaccia IDispatch dell'elemento figlio.
Uso di IAccessible::accLocation
Per ottenere la posizione dello schermo di un oggetto o di uno degli elementi figlio dell'oggetto, i client chiamano IAccessible::accLocation. Questo metodo restituisce le coordinate del rettangolo di delimitazione dell'oggetto specificato. Se l'oggetto non è modellato come un rettangolo, il metodo restituisce le coordinate del rettangolo più piccolo che comprende l'intero oggetto.
La figura seguente mostra la relazione tra l'area dell'oggetto non rettangolare e il rettangolo di delimitazione.
Nota
IAccessible::accHitTest è più preciso di IAccessible::accLocation perché consente ai client di determinare la posizione degli oggetti in base a pixel anziché con rettangoli di delimitazione. Questa precisione è utile, ad esempio, quando un'applicazione raccoglie informazioni monitorando la posizione del puntatore del mouse.