Condividi tramite


Panoramica dell'albero di automazione dell'interfaccia utente

Nota

Questa documentazione è destinata agli sviluppatori .NET Framework che desiderano utilizzare le classi di UI Automation gestite definite nello spazio dei nomi System.Windows.Automation. Per informazioni aggiornate su UI Automation, vedere API di automazione di Windows: UI Automation.

Prodotti e script di test di assistive technology esplorano l'albero di Automazione interfaccia utente per raccogliere informazioni sull'interfaccia utente e i relativi elementi.

Nell'albero di Automazione interfaccia utente è presente un elemento radice (RootElement) che rappresenta il desktop corrente e i cui elementi figlio rappresentano le finestre dell'applicazione. Ognuno di questi elemento figlio può contenere elementi che rappresentano parti dell'interfaccia utente, ad esempio menu, pulsanti, barre degli strumenti e caselle di riepilogo. Tali elementi, a loro volta, possono contenere altri elementi, ad esempio voci di elenco.

L'albero di Automazione interfaccia utente non è una struttura fissa e viene visualizzata raramente in modo completo perché potrebbe contenere migliaia di elementi. Parti dell'albero vengono compilate in base alle esigenze e la struttura può subire modifiche man mano che vengono aggiunti, spostati o rimossi elementi.

I provider di automazione interfaccia utente supportano l'albero di Automazione interfaccia utente mediante l'implementazione dello spostamento tra gli elementi all'interno di un frammento, costituito da una radice (generalmente ospitata in una finestra) e un sottoalbero. I provider, tuttavia, non sono interessati dallo spostamento da un controllo a un altro. Questa operazione è gestita dagli elementi di base di Automazione interfaccia utente, mediante informazioni fornite dai provider di finestra predefiniti.

Visualizzazioni dell'albero di automazione

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

Il client consente di personalizzare la visualizzazione in due modi: tramite ambito e tramite filtro. L'ambito consiste nel definire l'estensione della visualizzazione, a partire da un elemento di base. Ad esempio, è possibile che l'applicazione cerchi solo i figli diretti del desktop o tutti i discendenti di una finestra dell'applicazione. Il filtro consiste nel definire i tipi di elementi da includere nella visualizzazione.

I provider di automazione interfaccia utente supportano i filtri mediante la definizione di proprietà sugli elementi, incluse le proprietà IsControlElementProperty e IsContentElementProperty.

Automazione interfaccia utente fornisce tre visualizzazioni predefinite. che sono definite dal tipo di filtro eseguito. L'ambito di qualsiasi visualizzazione è definito dall'applicazione. L'applicazione può inoltre applicare altri filtri sulle proprietà, ad esempio per includere solo i controlli abilitati in una visualizzazione controlli.

Visualizzazione non elaborata

La visualizzazione non elaborata dell'albero di Automazione interfaccia utente è l'albero completo degli oggetti AutomationElement di cui il desktop è la radice. La visualizzazione non elaborata riproduce la struttura a livello di codice nativa di un'applicazione ed è pertanto la visualizzazione più dettagliata disponibile. Costituisce inoltre la base sulla quale vengono compilate le altre visualizzazioni dell'albero. Poiché questa visualizzazione dipende dal framework di interfaccia utente sottostante, la visualizzazione non elaborata di un pulsante WPF avrà una visualizzazione non elaborata diversa da un pulsante Win32.

La visualizzazione non elaborata si ottiene cercando elementi senza specificare proprietà o usando RawViewWalker per esplorare l'albero.

Visualizzazione controlli

Le attività di descrizione dell'albero di Automazione interfaccia utente e di assistenza all'utente finale nell'interazione con l'applicazione eseguite dal prodotto di assistive technology vengono semplificate dalla visualizzazione controlli dell'albero dell'interfaccia utente, che mappa la struttura dell'interfaccia utente percepita da un utente finale.

La visualizzazione controlli è un sottoinsieme della visualizzazione non elaborata. Include tutti gli elementi dell'interfaccia utente della visualizzazione non elaborata che un utente finale potrebbe considerare interattivi o inerenti la struttura logica del controllo nell'interfaccia utente. Alcuni esempi di elementi dell'interfaccia utente che contribuiscono alla struttura logica dell'interfaccia utente, senza essere interattivi, sono i contenitori dell'elemento quali le intestazioni della visualizzazione elenco, le barre degli strumenti, i menu e la barra di stato. Gli elementi non interattivi usati semplicemente a scopi di layout o decorativi non saranno presenti nella visualizzazione controlli. Ne è un esempio un pannello usato solo per il layout di controlli in una finestra di dialogo che non contiene alcuna informazione. Gli elementi non interattivi presenti nella visualizzazione controlli sono grafici con informazioni e testo statico in una finestra di dialogo. Gli elementi non interattivi inclusi nella visualizzazione controlli non possono ricevere lo stato attivo della tastiera.

La visualizzazione controlli si ottiene cercando elementi con la proprietà IsControlElement impostata su true o usando ControlViewWalker per esplorare l'albero.

Visualizzazione contenuto

La visualizzazione contenuto dell'albero di Automazione interfaccia utente è un sottoinsieme della visualizzazione controlli. Contiene gli 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 il testo che non è un'etichetta in un elemento dell'interfaccia utente. Ad esempio, i valori in una casella combinata a discesa saranno presenti nella visualizzazione contenuto poiché rappresentano le informazioni usate da un utente finale. Nella visualizzazione contenuto, una casella combinata e una casella di riepilogo sono entrambe rappresentate come un insieme di elementi dell'interfaccia utente in cui è possibile selezionare uno o più elementi. Il fatto che un elemento sia sempre aperto e un altro possa essere espanso o compresso è irrilevante nella visualizzazione contenuto, che è progettata per mostrare i dati, o il contenuto, presentato all'utente.

La visualizzazione contenuto si ottiene cercando elementi con la proprietà IsContentElement impostata su true o usando ContentViewWalker per esplorare l'albero.

Vedi anche