Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo argomento presenta concetti e tecnologie correlati alla creazione di app di Windows accessibili.
Le applicazioni Windows accessibili supportano non solo le persone con disabilità (sia temporanee che permanenti), ma anche quelle con preferenze personali, stili di lavoro specifici o vincoli ambientali e situazioniali (ad esempio spazi di lavoro condivisi, larghezza di banda bassa, luce solare luminosa, ambiente rumoroso o silenzioso, durante la cottura e così via).
Le linee guida sono scritte per i team di sviluppo che considerano l'accessibilità come requisito di qualità principale e usano controlli di accessibilità automatizzati come parte dei normali flussi di lavoro di progettazione. Usare questi argomenti per definire le aspettative di accessibilità in anticipo, convalidarle continuamente e impedire le regressioni man mano che le funzionalità si evolvono.
Molte disabilità, tra cui mobilità compromessa, visione, percezione del colore, udito, riconoscimento, riconoscimento e alfabetizzazione, possono essere affrontate fornendo:
- Supporto per interazioni da tastiera e utilità per la lettura dello schermo.
- Supporto per la personalizzazione dell'utente, ad esempio il tipo di carattere, l'impostazione di zoom (ingrandimento), il colore e le impostazioni a contrasto elevato.
- Interfaccia utente alternativa o supplementare.
I controlli XAML forniscono il supporto predefinito per l'accesso tramite tastiera e le tecnologie assistive, ad esempio i lettori di schermo. Questo supporto predefinito consente un livello di accessibilità di base che è possibile personalizzare tramite varie proprietà. Se stai creando componenti e controlli XAML personalizzati, puoi anche aggiungere un supporto simile a questi controlli usando un peer di automazione * (per altre informazioni, vedi Peer di automazione personalizzati).
Inoltre, le funzionalità di data binding, stile e modello consentono di supportare dinamicamente l'interfaccia utente alternativa e le modifiche per visualizzare le impostazioni.
Automazione dell'interfaccia utente
Il supporto per l'accessibilità deriva principalmente dall'integrazione del framework di automazione interfaccia utente Microsoft. Tale supporto viene fornito tramite classi di base e il comportamento predefinito dell'implementazione della classe per i tipi di controllo, nonché una rappresentazione dell'interfaccia dell'API del provider di automazione interfaccia utente. Ogni classe di controllo utilizza i concetti di UI Automation di "peer" di automazione e di "pattern" di automazione che segnalano il ruolo e il contenuto del controllo ai client di UI Automation. L'app viene considerata come una finestra di primo livello da UI Automation e tramite il framework UI Automation tutto il contenuto pertinente per l'accessibilità all'interno di tale finestra dell'app è disponibile per un client UI Automation. Per ulteriori informazioni su UI Automation, consulta Panoramica di UI Automation.
Tecnologia assistiva
Molte esigenze di accessibilità sono soddisfatte dai prodotti di assistive technology installati dall'utente o da strumenti e impostazioni forniti dal sistema operativo. Sono incluse le utilità per la lettura dello schermo, le lenti di ingrandimento dello schermo e le impostazioni a contrasto elevato.
I prodotti di assistive technology includono un'ampia gamma di software e hardware. Questi prodotti utilizzano l'interfaccia standard della tastiera e i framework di accessibilità che segnalano informazioni sul contenuto e la struttura dell'interfaccia utente ai screen reader e ad altre tecnologie assistive. Esempi di prodotti di assistive technology includono:
- Tastiera su schermo (OSK) o tastiera software, che consente agli utenti di usare un puntatore anziché una tastiera hardware per digitare il testo.
- Software di riconoscimento vocale, che converte le parole pronunciate in testo digitato.
- Lettori di schermo, che convertono il testo in parole pronunciate o in Braille.
- L'utilità per la lettura dello schermo dell'Assistente vocale, integrata in Windows, ha una modalità tocco che consente di eseguire attività di lettura dello schermo tramite movimenti di tocco.
- Programmi o impostazioni che regolano lo schermo, ad esempio temi a contrasto elevato, punti per pollice (dpi) o lo strumento Lente di ingrandimento.
Le app con un buon supporto per la tastiera e l'utilità per la lettura dello schermo funzionano in genere bene con vari prodotti di assistive technology. In molti casi, un'app di Windows funziona con questi prodotti senza modifiche aggiuntive di informazioni o struttura. Tuttavia, è possibile modificare alcune impostazioni per un'esperienza di accessibilità ottimale o implementare supporto aggiuntivo.
Per informazioni su come testare gli scenari di accessibilità di base con le tecnologie assistive, vedere Test di accessibilità.
Supporto del lettore di schermo e informazioni di base sull'accessibilità
I lettori di schermo forniscono accesso al testo in un'app convertendolo in un altro formato, come la lingua parlata o l'output braille. Il comportamento esatto di un'utilità per la lettura dello schermo dipende dal software in cui l'utente lo ha configurato.
Ad esempio, alcune utilità per la lettura dello schermo leggono l'intera interfaccia utente quando l'utente avvia o passa a un'app, che consente all'utente di ricevere tutto il contenuto informativo prima di tentare di spostarlo. Alcune utilità per la lettura dello schermo leggono anche il testo associato a un singolo controllo quando riceve lo stato attivo durante lo spostamento tramite tabulazione. Ciò consente agli utenti di orientarsi mentre si spostano tra i controlli di input di un'applicazione. Il Narratore è un esempio di utilità per la lettura dello schermo che supporta entrambe le funzionalità.
Le informazioni più importanti necessarie affinché un'utilità per la lettura dello schermo o qualsiasi altra tecnologia assistiva aiuti gli utenti a comprendere o esplorare un'app sono un nome accessibile per ogni elemento dell'app. In molti casi, un controllo o un elemento ha già un nome accessibile derivato da altri valori di proprietà, ad esempio un elemento che supporta e visualizza il testo interno. Per altri elementi, potrebbe essere necessario specificare un nome accessibile tramite la struttura degli elementi. A volte è necessario specificare in modo esplicito il nome accessibile. Per altre informazioni sul funzionamento di questi valori derivati negli elementi comuni dell'interfaccia utente e per altre informazioni sui nomi accessibili in generale, vedere Esporre informazioni di accessibilità di base.
Sono disponibili diverse altre proprietà di automazione, incluse le proprietà della tastiera descritte nella sezione successiva. Tuttavia, non tutte le utilità per la lettura dello schermo supportano tutte le proprietà di automazione, pertanto è consigliabile testare tutte le proprietà di automazione appropriate con un'ampia gamma di utilità per la lettura dello schermo.
Supporto della tastiera
Integrare l'accessibilità della tastiera (per hardware tradizionale, modificato o di emulazione della tastiera) nella tua app, consente agli utenti che sono ciechi, hanno ipovisione o problemi di controllo motorio di navigare e utilizzare tutte le funzionalità della tua app. Consente inoltre agli utenti senza disabilità di scegliere la tastiera per lo spostamento a causa della preferenza o dell'efficienza.
Il modello di controllo di base XAML offre supporto per la tastiera integrato, tra cui la navigazione tramite tasti Tab, l'input di testo e il supporto specifico del controllo. Gli elementi che fungono da contenitori di layout (ad esempio i pannelli) usano l'ordine di layout per stabilire un ordine di tabulazione predefinito e fornire una rappresentazione accessibile dell'interfaccia utente. I controlli ListBox e GridView forniscono lo spostamento predefinito con i tasti di direzione. I controlli dei pulsanti gestiscono la barra spaziatrice o il tasto Invio per attivare i pulsanti.
Per altre informazioni su tutti gli aspetti del supporto della tastiera, tra cui l'ordine di tabulazione e l'attivazione o la navigazione basata su tasti, vedi accessibilità della tastiera.
Contenuti multimediali e didascalie
In genere vengono visualizzati elementi multimediali audio-visivi tramite un oggetto MediaPlayerElement . Ai fini dell'accessibilità, fornire dei controlli che consentano agli utenti di riprodurre, sospendere e arrestare il contenuto multimediale e includere didascalie o tracce audio alternative.
Testo accessibile
Quando progetti e implementi testo nella tua app, concentrati su questi tre requisiti di accessibilità di base.
- Le tecnologie assistive devono essere in grado di determinare se il testo deve essere letto durante la navigazione nella sequenza dei tab o come parte del contenuto complessivo del documento. È possibile influenzare questo comportamento scegliendo l'elemento di testo corretto e impostandone le proprietà in modo appropriato. Poiché ogni elemento di testo è mappato a uno scopo specifico e spesso a un ruolo di automazione interfaccia utente corrispondente, l'uso dell'elemento errato può esporre il ruolo errato e creare un'esperienza confusa per gli utenti di assistive technology.
- Molti utenti hanno problemi di visione bassa o visione del colore e non possono leggere il testo in modo affidabile, a meno che non vi sia un contrasto sufficiente tra testo e sfondo. Questo impatto può essere facile da sottovalutare durante la progettazione. Le linee guida per il contrasto stabilite consentono di evitare il testo illeggibile per questi utenti. Per altre info, vedi Requisiti di testo accessibili.
- Il testo troppo piccolo è difficile per molti utenti da leggere. Iniziare con una dimensione del testo predefinita ragionevole e assicurarsi che l'app funzioni correttamente con il testo di sistema e il ridimensionamento della visualizzazione. Ciò è particolarmente importante nelle interfacce utente che contengono grandi quantità di testo o layout visivi densi.
Supporto di temi a contrasto elevato
I controlli XAML ottengono l'aspetto visivo dai dizionari delle risorse del tema, comprese le risorse a contrasto elevato. Quando un utente abilita una modalità a contrasto elevato, i controlli si adattano automaticamente alle risorse appropriate per il contrasto elevato. Per mantenere questo comportamento, evitare approcci di stile che bloccano la ricerca delle risorse del tema, ad esempio colori codificati in maniera rigida o stili espliciti che impediscono ai valori dei temi ad alto contrasto di eseguire l'override dei valori personalizzati. Per ulteriori informazioni, consulta i temi ad alto contrasto .
Progettazione per un'interfaccia utente alternativa
In molti casi, è possibile comunicare informazioni essenziali in modo più efficace usando più segnali. Ad esempio, combinare le icone con il colore per supportare gli utenti con carenze di visione del colore e associare avvisi visivi con suoni per supportare gli utenti sordi o difficili da sentire.
Quando necessario, fornire un'interfaccia utente accessibile alternativa che rimuove oggetti visivi e animazioni non essenziali e semplifica i flussi di interazione. Nell'esempio di codice seguente viene illustrato come cambiare userControl per un altro in base a un'impostazione utente.
<StackPanel x:Name="LayoutRoot" Background="White">
<CheckBox x:Name="ShowAccessibleUICheckBox" Click="ShowAccessibleUICheckBox_Click">
Show Accessible UI
</CheckBox>
<ContentControl x:Name="ContentBlock">
<local:ContentPage/>
</ContentControl>
</StackPanel>
private void ShowAccessibleUICheckBox_Click(object sender, RoutedEventArgs e)
{
if (sender is CheckBox checkBox)
{
ContentBlock.Content = checkBox.IsChecked == true
? new AccessibleContentPage()
: new ContentPage();
}
}
Supporto per tecnologia assistiva nei controlli personalizzati
Quando si crea un controllo personalizzato, implementare o estendere una o più sottoclassi AutomationPeer per fornire supporto per l'accessibilità. In alcuni casi, il riutilizzo della stessa classe peer del controllo di base può fornire un comportamento di automazione di base accettabile per il controllo derivato. Tuttavia, è consigliabile convalidarlo tramite test e nella maggior parte dei casi è comunque necessario implementare un peer dedicato in modo che possa segnalare il nome e il comportamento corretti della classe per il controllo personalizzato. Per indicazioni sull'implementazione, vedere Peer di automazione personalizzati.
Supporto della tecnologia assistiva nelle app che supportano l'interoperabilità XAML/Microsoft DirectX
Per impostazione predefinita, il contenuto Microsoft DirectX ospitato in un'interfaccia utente XAML (tramite SwapChainPanel o SurfaceImageSource) non è accessibile. L'esempio di interoperabilità DirectX XAML SwapChainPanel (esempio legacy archiviato) mostra come rendere accessibile il contenuto ospitato tramite automazione interfaccia utente creando un AutomationPeer per il contenuto DirectX. Questa tecnica rende il contenuto ospitato accessibile tramite UI Automation.
Verifica e pubblicazione
Considerare la verifica dell'accessibilità come attività di progettazione in corso, non un passaggio di controllo di qualità finale. Eseguire controlli automatizzati per ogni build possibile e associarli a una convalida manuale mirata della tecnologia assistiva per i percorsi utente critici.
Per ulteriori informazioni sulle dichiarazioni di accessibilità e sulla pubblicazione della tua app, consulta Accessibilità nello Store.
Esempi
Apri l'app Raccolta WinUI 3 e osserva in azione i seguenti principi di accessibilità:
![]()
L'app Raccolta WinUI 3 include esempi interattivi di controlli e funzionalità WinUI. Ottenere l'app dal Microsoft Store o esplorare il codice sorgente in GitHub.
Argomenti correlati
- Microsoft.UI.Xaml.Automation
- Microsoft.UI.Xaml.Automation
- Esempio di accessibilità XAML (esempio obsoleto e archiviato)
- Panoramica dell'accessibilità
- Iniziare con Assistente vocale