Panoramica dell'albero di automazione dell'interfaccia utente

I prodotti e gli script di test di Assistive Technology esplorano l'albero di Microsoft Automazione interfaccia utente per raccogliere informazioni sull'interfaccia utente e sui relativi elementi.

Nell'albero Automazione interfaccia utente è un elemento radice che rappresenta la finestra desktop di Windows ("desktop") e i cui elementi figlio rappresentano le finestre dell'applicazione. Ognuno di questi elementi figlio può contenere elementi che rappresentano parti dell'interfaccia utente, ad esempio menu, pulsanti, barre degli strumenti e caselle di riepilogo. Questi elementi possono contenere elementi, ad esempio elementi di elenco.

L'albero Automazione interfaccia utente non è una struttura fissa. È raramente visto nella sua totalità perché potrebbe contenere migliaia di elementi. Le parti dell'albero Automazione interfaccia utente vengono compilate in base alle esigenze del client e la struttura dell'albero cambia man mano che vengono aggiunti, spostati o rimossi elementi.

Automazione interfaccia utente provider supportano l'albero Automazione interfaccia utente implementando lo spostamento tra gli elementi in un frammento. Un frammento è un sottoalbero completo di elementi di un determinato framework e ha un elemento radice (denominato radice del frammento) che in genere è ospitato in una finestra.

I provider non sono interessati alla navigazione da un controllo a un altro. Viene gestito dal core Automazione interfaccia utente, che usa le informazioni dei provider di finestre predefiniti.

In questo argomento sono contenute le sezioni seguenti.

Visualizzazioni dell'albero Automazione interfaccia utente

L'albero Automazione interfaccia utente può essere filtrato per creare visualizzazioni che contengono solo gli elementi Automazione interfaccia utente rilevanti per un determinato client. Questo approccio consente ai client di personalizzare la struttura presentata tramite Automazione interfaccia utente in base alle esigenze specifiche.

Il client può personalizzare la visualizzazione in base all'ambito e filtrando. L'ambito definisce l'extent della visualizzazione, a partire da un elemento di base. Ad esempio, l'applicazione potrebbe voler trovare solo elementi figlio diretti del desktop o tutti i discendenti di una finestra dell'applicazione. Il filtro definisce i tipi di elementi inclusi nella visualizzazione.

Automazione interfaccia utente provider supportano il filtro definendo le proprietà sugli elementi, incluse le proprietà IUIAutomationElement::IsControlElement e IUIAutomationElement::IsContentElement.

Automazione interfaccia utente offre tre visualizzazioni predefinite: visualizzazione non elaborata, visualizzazione controllo e visualizzazione contenuto. Queste viste sono definite dal tipo di filtro eseguito. L'ambito di qualsiasi visualizzazione è definito dall'applicazione. L'applicazione può applicare altri filtri alle proprietà; Ad esempio, per includere solo i controlli abilitati in una visualizzazione controllo.

Visualizzazione non elaborata

La visualizzazione non elaborata dell'albero Automazione interfaccia utente è l'albero completo degli elementi di automazione per cui il desktop è la radice. La visualizzazione non elaborata segue attentamente la struttura a livello di codice nativo di un'applicazione ed è la visualizzazione più dettagliata disponibile. Costituisce inoltre la base sulla quale vengono compilate le altre visualizzazioni dell'albero. Poiché questa visualizzazione dipende dal framework dell'interfaccia utente sottostante, la visualizzazione non elaborata di un pulsante Windows Presentation Foundation (WPF) ha una visualizzazione non elaborata diversa rispetto a un pulsante Microsoft Win32.

La visualizzazione non elaborata viene ottenuta cercando elementi senza specificare proprietà o usando IUIAutomation::RawViewWalker per ottenere un'interfaccia IUIAutomationTreeWalker per spostarsi nell'albero.

Visualizzazione controlli

La visualizzazione controlli è un sottoinsieme della visualizzazione non elaborata. Include solo gli elementi dell'interfaccia utente con la proprietà IUIAutomationElement::IsControlElement impostata su TRUE.

La visualizzazione controllo include gli elementi dell'interfaccia utente che forniscono informazioni all'utente o consentono all'utente di eseguire un'azione. Questi sono gli elementi dell'interfaccia utente più interessanti per le applicazioni di test automatizzate.

La visualizzazione controllo include anche elementi dell'interfaccia utente non interattivi che contribuiscono alla struttura logica dell'interfaccia utente. Questi includono contenitori di elementi, ad esempio intestazioni della visualizzazione elenco, barre degli strumenti, menu e barra di stato. Altri elementi non interattivi visualizzati nella visualizzazione controllo sono grafici con informazioni e testo statico in una finestra di dialogo.

Gli elementi non interattivi utilizzati solo per scopi decorativi o di layout, ad esempio i pannelli utilizzati per disporre i controlli in una finestra di dialogo, non vengono visualizzati nella visualizzazione controlli.

La visualizzazione dei controlli dell'albero Automazione interfaccia utente è strettamente mappata alla struttura dell'interfaccia utente percepita da un utente finale. Ciò rende più semplice per il prodotto assistive technology descrivere l'interfaccia utente all'utente finale e aiutare l'utente finale a interagire con l'applicazione.

La visualizzazione controlli viene ottenuta cercando elementi con la proprietà IUIAutomationElement::IsControlElement impostata su true oppure usando ControlViewWalker per ottenere un'interfaccia IUIAutomationTreeWalker per spostarsi nell'albero.

Visualizzazione contenuto

La visualizzazione contenuto dell'albero Automazione interfaccia utente è un subset della visualizzazione controlli. Include solo gli elementi dell'interfaccia utente con la proprietà IUIAutomationElement::IsControlElement e IUIAutomationElement::IsContentElement impostata su TRUE.

La visualizzazione contenuto contiene elementi dell'interfaccia utente che contengono le informazioni effettive in un'interfaccia utente, inclusi gli elementi dell'interfaccia utente che possono ricevere lo stato attivo della tastiera e un testo che non è un'etichetta per un elemento dell'interfaccia utente. Questi sono gli elementi dell'interfaccia utente più interessanti per un'applicazione per la lettura dello schermo. Ad esempio, i valori di una casella combinata a discesa vengono visualizzati nella visualizzazione contenuto perché i valori rappresentano le informazioni utilizzate da un utente finale.

Nella visualizzazione contenuto è possibile selezionare una casella combinata e una casella di riepilogo come una raccolta di elementi dell'interfaccia utente in cui è possibile selezionare uno o più elementi. Il fatto che un elemento sia sempre aperto e che un elemento possa espandersi e comprimere è irrilevante nella visualizzazione contenuto perché è progettato per mostrare i dati o il contenuto che viene presentato all'utente.

La visualizzazione contenuto viene ottenuta eseguendo la ricerca di elementi con la proprietà IsControlElement e CurrentIsContentElement impostata su TRUE oppure usando IUIAutomation::ContentViewWalker per ottenere un'interfaccia IUIAutomationTreeWalker per spostarsi nell'albero.

Le immagini seguenti mostrano le differenze tra la visualizzazione controlli e la visualizzazione contenuto. La prima immagine mostra una casella combinata semplice con tre elementi nell'elenco a discesa. La seconda immagine mostra come vengono visualizzati gli elementi dell'interfaccia utente della casella combinata nel controllo e nelle visualizzazioni contenuto dell'applicazione UISpy.exe.

screenshot di una casella combinata semplice con tre elementi a discesa

screenshot dell'applicazione uispy con controllo e visualizzazioni contenuto degli elementi casella combinata

Informazioni concettuali

Creazione dell'oggetto CUIAutomation

Ottenere elementi di automazione interfaccia utente

Nozioni fondamentali sull'automazione interfaccia utente