Panoramica dell'accessibilità

Questo articolo è una panoramica dei concetti e delle tecnologie correlati agli scenari di accessibilità per le app di Windows.

Accessibilità e app

Esistono molte possibili disabilità o problemi, tra cui limitazioni nella mobilità, nella visione, nella percezione del colore, nell'udito, nel parlato, nella conoscenza e nell'alfabetizzazione. Tuttavia, è possibile soddisfare la maggior parte dei requisiti seguendo le linee guida offerte qui. Ciò significa fornire:

  • 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.
  • Alternative o integratori per parti dell'interfaccia utente.

I controlli per XAML offrono supporto tastiera e supporto predefiniti per tecnologie di assistive technology, ad esempio le utilità per la lettura dello schermo, che sfruttano i framework di accessibilità che supportano già app UWP, HTML e altre tecnologie dell'interfaccia utente. Questo supporto predefinito consente un livello di accessibilità di base che è possibile personalizzare con pochissime operazioni, impostando solo alcune proprietà. Se stai creando componenti e controlli XAML personalizzati, puoi anche aggiungere un supporto simile a questi controlli usando il concetto di peer di automazione.

Inoltre, le funzionalità di data binding, stile e modello semplificano l'implementazione del supporto per le modifiche dinamiche per visualizzare le impostazioni e il testo per interfacce utente alternative.

Automazione interfaccia utente

Il supporto per l'accessibilità proviene principalmente dal supporto integrato per il framework microsoft Automazione interfaccia utente. Tale supporto viene fornito tramite classi di base e il comportamento predefinito dell'implementazione della classe per i tipi di controllo e una rappresentazione dell'interfaccia dell'API del provider Automazione interfaccia utente. Ogni classe di controllo usa i concetti Automazione interfaccia utente dei peer di automazione e dei modelli di automazione che segnalano il ruolo e il contenuto del controllo ai client di Automazione interfaccia utente. L'app viene considerata come una finestra di primo livello da Automazione interfaccia utente e tramite il framework Automazione interfaccia utente tutto il contenuto pertinente per l'accessibilità all'interno di tale finestra dell'app è disponibile per un client Automazione interfaccia utente. Per altre informazioni sull'Automazione dell'interfaccia utente, vedere Panoramica di Automazione dell'interfaccia utente.

Assistive technology

Molte esigenze di accessibilità degli utenti sono soddisfatte dai prodotti di assistive technology installati dall'utente o da strumenti e impostazioni forniti dal sistema operativo. Sono incluse funzionalità come le utilità per la lettura dello schermo, l'ingrandimento dello schermo e le impostazioni a contrasto elevato.

I prodotti di assistive technology includono un'ampia gamma di software e hardware. Questi prodotti usano l'interfaccia della tastiera standard e i framework di accessibilità che segnalano informazioni sul contenuto e sulla struttura di un'interfaccia utente per le utilità per la lettura dello schermo e altre tecnologie di assistive technology. Esempi di prodotti di assistive technology includono:

  • Tastiera su schermo, che consente agli utenti di usare un puntatore al posto di una tastiera per digitare il testo.
  • Software di riconoscimento vocale, che converte le parole pronunciate in testo digitato.
  • Utilità per la lettura dello schermo, che converte il testo in parole pronunciate o in altre forme, ad esempio Braille.
  • Utilità per la lettura dello schermo dell'Assistente vocale, che fa parte specifica di Windows. L'Assistente vocale ha una modalità tocco, che può eseguire attività di lettura dello schermo elaborando i movimenti tocco, per quando non è disponibile alcuna tastiera.
  • Programmi o impostazioni che regolano la visualizzazione o le aree di esso, ad esempio temi a contrasto elevato, punti per pollice (dpi) dello schermo 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 UWP 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.

Alcune delle opzioni che è possibile usare per testare scenari di accessibilità di base con assistive technology sono elencate in Test di accessibilità.

Supporto dell'utilità per la lettura dello schermo e informazioni di accessibilità di base

Le utilità per la lettura dello schermo forniscono l'accesso al testo in un'app eseguendone il rendering in un altro formato, ad esempio la lingua parlata o l'output braille. Il comportamento esatto di un'utilità per la lettura dello schermo dipende dal software e dalla relativa configurazione scelta dall'utente.

Ad esempio, alcune utilità per la lettura dello schermo leggono l'intera interfaccia utente dell'app all'avvio o passa all'app visualizzata, che consente all'utente di ricevere tutto il contenuto informativo disponibile 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. L'Assistente vocale è un esempio di utilità per la lettura dello schermo che fornisce entrambi i comportamenti, a seconda della scelta dell'utente.

Le informazioni più importanti necessarie per consentire agli utenti di comprendere o esplorare un'app sono un nome accessibile per le parti dell'elemento dell'app. In molti casi, un controllo o un elemento ha già un nome accessibile calcolato da altri valori di proprietà specificati in altro modo. Il caso più comune in cui è possibile usare un nome già calcolato è con un elemento che supporta e visualizza il testo interno. Per altri elementi, a volte è necessario tenere conto di altri modi per fornire un nome accessibile seguendo le procedure consigliate per la struttura degli elementi. E a volte è necessario specificare un nome che sia esplicitamente inteso come nome accessibile per l'accessibilità dell'app. Per un elenco del numero di questi valori calcolati negli elementi comuni dell'interfaccia utente e per altre informazioni sui nomi accessibili in generale, vedi 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. In generale, è necessario impostare tutte le proprietà di automazione appropriate e testare per fornire il supporto più ampio possibile per le utilità per la lettura dello schermo.

Supporto per la tastiera

Per fornire un buon supporto da tastiera, è necessario assicurarsi che ogni parte dell'applicazione possa essere usata con una tastiera. Se l'app usa principalmente i controlli standard e non usa controlli personalizzati, la maggior parte dei casi è già presente. Il modello di controllo XAML di base offre supporto tastiera predefinito, tra cui lo spostamento tramite tabulazioni, 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. Questo ordine è spesso l'ordine di tabulazione corretto da usare per una rappresentazione accessibile dell'interfaccia utente. Se si usano i controlli ListBox e GridView per visualizzare i dati, forniscono lo spostamento predefinito con i tasti di direzione. In alternativa, se si usa un controllo Button , gestisce già la barra spaziatrice o i tasti Invio per l'attivazione del pulsante.

Per altre info 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à tramite tastiera.

Supporti e didascalia

I supporti audiovisivi vengono in genere visualizzati tramite un oggetto MediaElement . È possibile usare le API MediaElement per controllare la riproduzione multimediale. Ai fini dell'accessibilità, fornire controlli che consentono agli utenti di riprodurre, sospendere e arrestare i supporti in base alle esigenze. In alcuni casi, i supporti includono componenti aggiuntivi destinati all'accessibilità, ad esempio didascalia o tracce audio alternative che includono descrizioni narrative.

Testo accessibile

Tre aspetti principali del testo sono rilevanti per l'accessibilità:

  • Gli strumenti devono determinare se il testo deve essere letto come parte di un attraversamento di sequenza di tabulazioni o solo come parte di una rappresentazione complessiva del documento. È possibile controllare questa determinazione scegliendo l'elemento appropriato per visualizzare il testo o modificando le proprietà di tali elementi di testo. Ogni elemento di testo ha uno scopo specifico e questo scopo ha spesso un ruolo Automazione interfaccia utente corrispondente. L'uso dell'elemento errato può comportare la segnalazione del ruolo errato a Automazione interfaccia utente e la creazione di un'esperienza di confusione per un utente di assistive technology.
  • Molti utenti hanno limitazioni di vista che rendono difficile per loro leggere il testo a meno che non abbia un contrasto adeguato rispetto allo sfondo. In che modo questo influisce sull'utente non è intuitivo per i progettisti di app che non hanno tale limitazione di vista. Ad esempio, per gli utenti color-blind, le scelte di colore scarse nel design possono impedire ad alcuni utenti di leggere il testo. Le raccomandazioni sull'accessibilità originariamente fatte per il contenuto Web definiscono standard per il contrasto che possono evitare questi problemi anche nelle app. Per altre info, vedi Requisiti di testo accessibili.
  • Molti utenti hanno difficoltà a leggere il testo semplicemente troppo piccolo. È possibile evitare questo problema rendendo il testo nell'interfaccia utente dell'app ragionevolmente grande al primo posto. Tuttavia, ciò è problematico per le app che visualizzano grandi quantità di testo o testo intervallato da altri elementi visivi. In questi casi, assicurarsi che l'app interagisca correttamente con le funzionalità di sistema in grado di aumentare la visualizzazione, in modo che qualsiasi testo nelle app venga ridimensionato insieme a esso. (Alcuni utenti modificano i valori dpi come opzione di accessibilità. Questa opzione è disponibile in Rendi le cose sullo schermo più grandi in Accessibilità, che reindirizza a un'interfaccia utente Pannello di controllo per visualizzazione aspetto e personalizzazione / .)

Supporto della modalità contrasto elevato

I controlli dell'interfaccia utente usano una rappresentazione visiva definita come parte di un dizionario risorse XAML dei temi. Uno o più di questi temi vengono usati specificamente quando il sistema è impostato per il contrasto elevato. Quando l'utente passa al contrasto elevato, cercando il tema appropriato da un dizionario risorse in modo dinamico, anche tutti i controlli dell'interfaccia utente useranno un tema a contrasto elevato appropriato. Assicurati di non aver disabilitato i temi specificando uno stile esplicito o usando un'altra tecnica di stile che impedisce il caricamento e l'override delle modifiche di stile ai temi a contrasto elevato. Per altre info, vedi Temi a contrasto elevato.

Progettazione per un'interfaccia utente alternativa

Quando progetti le tue app, valuta come possono essere usate dalle persone con mobilità, visione e udito limitate. Poiché i prodotti di assistive technology usano ampiamente l'interfaccia utente standard, è particolarmente importante fornire un buon supporto per la tastiera e l'utilità per la lettura dello schermo anche se non si apportano altre modifiche per l'accessibilità.

In molti casi, è possibile trasmettere informazioni essenziali usando più tecniche per ampliare il pubblico. Ad esempio, è possibile evidenziare le informazioni usando sia le informazioni sull'icona che sul colore per aiutare gli utenti che sono daltonici e è possibile visualizzare avvisi visivi insieme agli effetti sonori per aiutare gli utenti sordi o difficili da sentire.

Se necessario, puoi fornire elementi alternativi e accessibili dell'interfaccia utente che rimuovono completamente elementi e animazioni non essenziali e forniscono altre semplificazioni per semplificare l'esperienza utente. Nell'esempio di codice seguente viene illustrato come visualizzare un'istanza di UserControl al posto di un'altra a seconda di un'impostazione utente.

XAML

<StackPanel x:Name="LayoutRoot" Background="White">

  <CheckBox x:Name="ShowAccessibleUICheckBox" Click="ShowAccessibleUICheckBox_Click">
    Show Accessible UI
  </CheckBox>

  <UserControl x:Name="ContentBlock">
    <local:ContentPage/>
  </UserControl>

</StackPanel>

Visual Basic

Private Sub ShowAccessibleUICheckBox_Click(ByVal sender As Object,
    ByVal e As RoutedEventArgs)

    If (ShowAccessibleUICheckBox.IsChecked.Value) Then
        ContentBlock.Content = New AccessibleContentPage()
    Else
        ContentBlock.Content = New ContentPage()
    End If
End Sub

C#

private void ShowAccessibleUICheckBox_Click(object sender, RoutedEventArgs e)
{
    if ((sender as CheckBox).IsChecked.Value)
    {
        ContentBlock.Content = new AccessibleContentPage();
    }
    else
    {
        ContentBlock.Content = new ContentPage();
    }
}

Verifica e pubblicazione

Per altre info sulle dichiarazioni di accessibilità e sulla pubblicazione dell'app, vedi Accessibilità nello Store.

Nota

Dichiarare l'app come accessibile è rilevante solo per Microsoft Store.

Supporto di assistive technology nei controlli personalizzati

Quando si crea un controllo personalizzato, è consigliabile implementare o estendere anche una o più sottoclassi AutomationPeer per fornire supporto per l'accessibilità. In alcuni casi, purché si usi la stessa classe peer usata dalla classe di controllo di base, il supporto di automazione per la classe derivata è adeguato a un livello di base. Tuttavia, è consigliabile testarlo e implementare un peer è comunque consigliato come procedura consigliata in modo che il peer possa segnalare correttamente il nome della classe della nuova classe di controllo. L'implementazione di un peer di automazione personalizzato prevede alcuni passaggi. Per altre info, vedi Peer di automazione personalizzati.

Supporto di assistive technology nelle app che supportano l'interoperabilità XAML/Microsoft DirectX

Il contenuto Microsoft DirectX ospitato in un'interfaccia utente XAML (tramite SwapChainPanel o SurfaceImageSource) non è accessibile per impostazione predefinita. L'esempio di interoperabilità DirectX XAML SwapChainPanel mostra come creare peer Automazione interfaccia utente per il contenuto DirectX ospitato. Questa tecnica rende accessibile il contenuto ospitato tramite Automazione interfaccia utente.

Esempi

Suggerimento

Aprire l'app Raccolta WinUI 3 e visualizzare i principi di accessibilità seguenti in azione:

L'app Raccolta WinUI 3 include esempi interattivi della maggior parte dei controlli e delle funzionalità di WinUI 3. Scaricare l'app da Microsoft Store od ottenere il codice sorgente su GitHub