Cenni preliminari su automazione 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.

Automazione interfaccia utente Microsoft è il nuovo framework di accessibilità per Microsoft Windows, disponibile in tutti i sistemi operativi che supportano Windows Presentation Foundation (WPF).

Automazione interfaccia utente fornisce l'accesso a livello di codice alla maggior parte degli elementi dell'interfaccia utente sul desktop, consentendo ai prodotti di assistive technology, ad esempio le utilità per la lettura dello schermo, di fornire informazioni sull'interfaccia utente agli utenti finali e di modificare l'interfaccia utente con mezzi diversi dall'input standard. Automazione interfaccia utente consente anche agli script di test automatizzati di interagire con l'interfaccia utente.

Nota

Automazione interfaccia utente non abilita la comunicazione tra processi avviati da utenti diversi tramite il comando Esegui come.

Le applicazioni client di automazione interfaccia utente possono essere scritte con la certezza che funzioneranno su più framework. L'interfaccia utente di Automazione interfaccia utente maschera le differenze nei framework che sottostanti vari componenti dell'interfaccia utente. Ad esempio, la proprietà Content di un pulsante WPF, la proprietà Caption di un pulsante Win32 e la proprietà ALT di un'immagine HTML vengono mappate a una singola proprietà, Name, nella visualizzazione Automazione interfaccia utente.

Automazione interfaccia utente offre funzionalità complete nei sistemi operativi Windows supportati che eseguono .NET Framework (vedere Requisiti di sistema di .NET Framework o versioni di .NET Core a partire da .NET Core 3.0.

I provider di automazione interfaccia utente offrono un supporto per le applicazioni client Microsoft Active Accessibility tramite un servizio di bridging predefinito.

Provider e client

Automazione interfaccia utente include quattro componenti principali, come illustrato nella tabella seguente.

Componente Descrizione
API del provider (UIAutomationProvider.dll e UIAutomationTypes.dll) Un insieme di definizioni dell'interfaccia implementate dai provider di automazione interfaccia utente, oggetti che forniscono informazioni sugli elementi dell'interfaccia utente e rispondono a input a livello di codice.
API client (UIAutomationClient.dll e UIAutomationTypes.dll) Un insieme di tipi per il codice gestito che consente alle applicazioni client di automazione interfaccia utente di ottenere informazioni sull'interfaccia utente e inviare input ai controlli.
UiAutomationCore.dll Il codice sottostante (talvolta denominato core di automazione interfaccia utente) che gestisce la comunicazione tra provider e client.
UIAutomationClientsideProviders.dll Un insieme di provider di automazione interfaccia utente per i controlli standard legacy I controlli WPF dispongono del supporto nativo per Automazione interfaccia utente. Questo supporto è automaticamente disponibile per le applicazioni client.

Per uno sviluppatore software, esistono due modalità d'uso di automazione interfaccia utente: creare supporto per i controlli personalizzati (usando l'API del provider) e creare applicazioni che usano il core di automazione interfaccia utente per comunicare con gli elementi dell'interfaccia utente (usando l'API client). In base allo stato attivo, è necessario fare riferimento a parti diverse della documentazione. Per altre informazioni sui concetti e per istruzioni pratiche sulle procedure, vedere le sezioni seguenti.

Sezione Argomento Destinatari
Nozioni fondamentali su Automazione interfaccia utente (questa sezione) Panoramiche generiche dei concetti. Tutti.
Provider di Automazione interfaccia utente per il codice gestito Panoramiche e argomenti sulle procedure per consentire l'uso dell'API del provider. Sviluppatori dei controlli.
Client di Automazione interfaccia utente per il codice gestito Panoramiche e argomenti sulle procedure per l'uso dell'API client. Sviluppatori di applicazioni client.
Pattern di controllo per Automazione interfaccia utente Informazioni sulla modalità di implementazione dei pattern di controllo da parte dei provider e sulle funzionalità disponibili ai client. Tutti.
Pattern di testo per Automazione interfaccia utente Informazioni sulla modalità di implementazione del pattern di controllo Text da parte dei provider e sulle funzionalità disponibili ai client. Tutti.
Tipi di controllo per Automazione interfaccia utente Informazioni sulle proprietà e sui pattern di controllo supportati da diversi tipi di controllo. Tutti.

Nella tabella riportata di seguito vengono elencati gli spazi dei nomi di automazione interfaccia utente, le DLL che li contengono e i destinatari che le usano.

Spazio dei nomi DLL a cui si fa riferimento Destinatari
System.Windows.Automation UIAutomationClientUIAutomationTypes Sviluppatori client di automazione interfaccia utente; usato per trovare oggetti AutomationElement, registrarsi per gli eventi di automazione interfaccia utente e usare i modelli di controllo di automazione interfaccia utente.
System.Windows.Automation.Provider UIAutomationProviderUIAutomationTypes Sviluppatori di provider di automazione interfaccia utente per i framework diversi da WPF.
System.Windows.Automation.Text UIAutomationClientUIAutomationTypes Sviluppatori di provider di automazione interfaccia utente per framework diversi da WPF; usato per implementare il pattern di controllo TextPattern.
System.Windows.Automation.Peers PresentationFramework Sviluppatori di provider di automazione interfaccia utente per WPF.

Modello di automazione interfaccia utente

Automazione interfaccia utente espone ogni parte dell'interfaccia utente alle applicazioni client come AutomationElement. Gli elementi sono contenuti in una struttura ad albero, con il desktop come elemento radice. I client possono filtrare la visualizzazione non elaborata della struttura ad albero come visualizzazione controlli o visualizzazione contenuto. Le applicazioni possono inoltre creare visualizzazioni personalizzate.

Gli oggetti AutomationElement espongono proprietà comuni degli elementi di interfaccia utente che rappresentano. Una di queste proprietà è il tipo di controllo, che definisce l'aspetto e le funzionalità di base come singola entità riconoscibile, ad esempio un pulsante o una casella di controllo.

Inoltre, gli elementi espongono pattern di controllo che forniscono proprietà specifiche per i tipi di controllo. I pattern di controllo espongono anche metodi che consentono ai client di ottenere altre informazioni sull'elemento e fornire input.

Nota

Non esiste una corrispondenza uno-a-uno tra tipi di controllo e pattern di controllo. Un pattern di controllo può essere supportato da più tipi di controllo e un controllo può supportare più pattern di controllo, ognuno dei quali espone aspetti diversi del comportamento. Ad esempio, una casella combinata dispone di almeno due pattern di controllo: uno che rappresenta la possibilità di espansione e compressione e un altro che rappresenta il meccanismo di selezione. Per informazioni dettagliate, vedere UI Automation Control Types.

Automazione interfaccia utente fornisce anche informazioni alle applicazioni client tramite gli eventi. A differenza di WinEvents, gli eventi di automazione interfaccia utente non sono basati su un meccanismo di trasmissione. I client di automazione interfaccia utente eseguono la registrazione per notifiche di eventi specifiche e possono richiedere che specifiche proprietà di automazione interfaccia utente e informazioni sul pattern di controllo vengano passate ai gestori eventi. Inoltre, un evento di automazione interfaccia utente contiene un riferimento all'elemento che lo ha generato. I provider possono migliorare le prestazioni generando eventi in modo selettivo, a seconda dei client in ascolto.

Vedi anche