Panoramica dell'albero di automazione interfaccia utente
I prodotti di assistive technology e gli script di test esplorano l'albero di Automazione interfaccia utente Microsoft per raccogliere informazioni sull'interfaccia utente e sui relativi elementi.
Nell'albero dell'Automazione dell'interfaccia utente c'è un elemento radice che rappresenta la finestra del desktop di Windows ("il 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 un elenco.
L'albero di automazione interfaccia utente non è una struttura fissa. Raramente è visto nella sua totalità perché potrebbe contenere migliaia di elementi. Le parti dell'albero di automazione interfaccia utente vengono compilate in base alle esigenze di un client e la struttura dell'albero cambia man mano che vengono aggiunti, spostati o rimossi elementi.
I provider di automazione interfaccia utente supportano l'albero di automazione interfaccia utente implementando lo spostamento tra gli elementi in un frammento. Un frammento è un sottoalbero completo di elementi di un framework specifico 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. Questa operazione viene gestita dal nucleo di Automazione UI, che utilizza informazioni dai provider di finestre predefiniti.
Questo argomento contiene le sezioni seguenti.
Visualizzazioni dell'albero di automazione interfaccia utente
L'albero di automazione interfaccia utente può essere filtrato per creare visualizzazioni che contengono solo gli elementi di 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 cliente può personalizzare la visualizzazione per ambito e filtro. L'ambito definisce l'estensione della visualizzazione, a partire da un elemento di base. Ad esempio, l'applicazione potrebbe voler trovare solo i figli diretti del desktop o tutti i discendenti di una finestra dell'applicazione. Il filtro definisce i tipi di elementi inclusi nella visualizzazione.
I provider di automazione interfaccia utente 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 controlli.
Visualizzazione non elaborata
La visualizzazione grezza dell'albero di automazione dell'interfaccia utente è l'albero completo degli elementi di automazione per cui il desktop è la radice. La visualizzazione non elaborata segue attentamente la struttura programmatica nativa di un'applicazione ed è la visualizzazione più dettagliata disponibile. È anche la base su cui vengono compilate le altre viste 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 le proprietà o utilizzando IUIAutomation::RawViewWalker per ottenere un'interfaccia IUIAutomationTreeWalker per navigare nell'albero.
Vista di controllo
La visualizzazione controllo è un subset 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, come intestazioni di elenco, barre degli strumenti, menu e barra dello stato. Altri elementi non interattivi visualizzati nella visualizzazione controllo sono grafici con informazioni e testo statico in una finestra di dialogo.
Gli elementi non attivi utilizzati solo a scopo layout o decorativo, ad esempio pannelli utilizzati per disporre i controlli in una finestra di dialogo, non vengono visualizzati nella visualizzazione controlli.
La vista di controllo dell'albero di Automazione UI riflette da vicino la struttura dell'interfaccia utente percepita da un utente finale. Questo 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 controllo viene ottenuta cercando gli 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 del contenuto dell'albero di automazione dell'interfaccia utente è un sottoinsieme della visualizzazione di controllo. Include solo gli elementi dell'interfaccia utente con la proprietà IUIAutomationElement::IsControlElement e la proprietà IUIAutomationElement::IsContentElement impostata su TRUE.
La visualizzazione del contenuto contiene elementi dell'interfaccia utente che trasmettono le informazioni reali in un'interfaccia utente, inclusi gli elementi dell'interfaccia utente che possono ricevere il focus della tastiera e alcuni testi che non fungono da etichette sugli elementi 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 usate da un utente finale.
Nella visualizzazione contenuto, una casella combinata e una casella di riepilogo sono entrambe rappresentate 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 del contenuto viene ottenuta cercando elementi che abbiano sia la proprietà IsControlElement sia la proprietà CurrentIsContentElement impostata su TRUE, oppure utilizzando IUIAutomation::ContentViewWalker per ottenere un'interfaccia IUIAutomationTreeWalker per navigare l'albero.
Le immagini seguenti mostrano le differenze tra la visualizzazione controlli e la visualizzazione contenuto. La prima immagine mostra una semplice casella combinata con tre elementi nell'elenco a discesa. La seconda immagine mostra come vengono visualizzati gli elementi dell'interfaccia utente della casella combinata nelle visualizzazioni di controllo e contenuto dell'applicazione UISpy.exe.
Argomenti correlati
-
concettuale