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
- Panoramica dell'albero di automazione interfaccia utente
- Panoramica dei pattern di controllo per l'automazione interfaccia utente
- Panoramica delle proprietà di automazione interfaccia utente
- Panoramica degli eventi di automazione interfaccia utente
- Panoramica della sicurezza di automazione interfaccia utente