Windows Dev Center

Accessibilità per le app di Windows Runtime scritte in C#/VB/C++ e XAML

Descriveremo alcuni dei concetti e delle tecnologie relativi agli scenari di accessibilità per un'app di Windows Runtime scritta in C#, Visual Basic o le estensioni dei componenti Visual C++ (C++/CX) per il codice dell'app e il codice XAML per la definizione dell'interfaccia utente.

Stai cercando la versione di questo argomento relativa a JavaScript? Vedi Accessibilità per le app di Windows Runtime scritte in JavaScript e HTML.

Roadmap: che relazione c'è tra questo argomento e gli altri? Vedi:

Prerequisiti

Partiamo dal presupposto che tu sappia come creare una semplice app di Windows Runtime. Per istruzioni su come creare la prima app di Windows Store con C++, C# o Visual Basic, vedi Creare la prima app di Windows Runtime in C# o Visual Basic oppure Creare la prima app di Windows Runtime in C++.

Accessibilità dell'app

L'accessibilità è la fruibilità delle app da parte di persone che, a causa di alcune limitazioni, non possono usare le interfacce utente convenzionali. Per alcune situazioni i requisiti di accessibilità sono imposti per legge, ma, indipendentemente da questo, è comunque opportuno tenere conto dei problemi di accessibilità per garantire all'app il maggior numero possibile di potenziali utenti. È inoltre disponibile una dichiarazione di Windows Store relativa all'accessibilità per l'app.

Nota  La dichiarazione dell'app come accessibile è rilevante solo per Windows Store.

Esistono molte possibili disabilità o menomazioni che interessano la mobilità, la vista, la percezione dei colori, l'udito, il linguaggio, l'apprendimento e l'alfabetizzazione. È tuttavia possibile affrontare la maggior parte delle esigenze seguendo le linee guida qui proposte. Ciò significa fornire:

  • Supporto per le interazioni tramite tastiera e utilità per la lettura dello schermo.
  • Supporto per la personalizzazione da parte dell'utente, ad impostazioni relative a tipo di carattere, zoom (ingrandimento), colore e contrasto elevato.
  • Soluzioni alternative o integrative per alcune parti dell'interfaccia utente.

I controlli di Windows Runtime per XAML includono il supporto predefinito della tastiera e il supporto di strumenti di assistive technology quali le utilità per la lettura dello schermo, che sfruttano i framework di accessibilità che già supportano le app di Windows Runtime, il linguaggio HTML e altre tecnologie dell'interfaccia utente. Questo supporto integrato abilita un livello di accessibilità di base che potrà essere personalizzato con qualche semplice operazione aggiuntiva e impostando qualche proprietà. Quando crei componenti e controlli XAML personalizzati puoi aggiungervi un supporto analogo sfruttando il concetto di peer di automazione.

Le funzionalità di data binding, stile e modello facilitano l'implementazione del supporto per modifiche dinamiche delle impostazioni utente relative a schermo e testo per interfacce utente alternative.

Automazione interfaccia utente

Il supporto dell'accessibilità per le app di Windows Runtime scritte in C++, C# o Visual Basic deriva principalmente dal supporto integrato per il framework di automazione interfaccia utente Microsoft. Il supporto è fornito tramite classi di base e il comportamento predefinito dell'implementazione delle classi per i tipi di controllo, nonché tramite una rappresentazione dell'interfaccia di Windows Runtime dell'API del provider di automazione interfaccia utente. Ogni classe di controllo usa i concetti di peer e pattern di automazione interfaccia utente, che dichiarano il ruolo e il contenuto del controllo ai client di automazione interfaccia utente. L'app di Windows Runtime viene trattata come una finestra di primo livello da automazione interfaccia utente e, tramite il framework di automazione interfaccia utente, tutto il contenuto rilevante per l'accessibilità all'interno della finestra dell'app viene messo a disposizione di un client di automazione interfaccia utente. Per altre informazioni su automazione interfaccia utente, vedi Panoramica di automazione interfaccia utente.

Assistive Technology

Molti requisiti di accessibilità sono soddisfatti dai prodotti Assistive Technology installati dall'utente o dagli strumenti e dalle impostazioni del sistema operativo, che includono le funzionalità per la lettura dello schermo, l'ingrandimento dello schermo e le impostazioni di contrasto elevato.

I prodotti Assistive Technology includono svariati componenti software e hardware. Questi prodotti sono compatibili con l'interfaccia della tastiera standard e i framework di accessibilità che forniscono informazioni sul contenuto e la struttura di un'interfaccia utente alle utilità per la lettura dello schermo e ad altri prodotti Assistive Technology. Ecco alcuni esempi di prodotti Assistive Technology:

  • Tastiera su schermo, che permette agli utenti di usare un puntatore al posto di una tastiera per digitare il testo.
  • Software di riconoscimento vocale, che converte l'enunciato verbale in testo digitato.
  • Utilità per la lettura dello schermo, che convertono il testo in enunciato verbale o in altre forme di scrittura, ad esempio Braille.
  • Utilità per la lettura dello schermo Assistente vocale, che fa specificamente parte di Windows. L'Assistente vocale dispone di una modalità tocco che può eseguire attività di lettura dello schermo elaborando i movimenti tocco quando non è disponibile una tastiera.
  • Programmi o impostazioni che regolano la visualizzazione o determinate aree della visualizzazione, ad esempio i temi a contrasto elevato, le impostazioni DPI (punti per pollice) dello schermo o lo strumento Lente di ingrandimento.

Le app dotate di supporto adeguato per la tastiera e per le utilità di lettura dello schermo funzionano generalmente bene con diversi prodotti di assistive technology. In molti casi le app di Windows Runtime funzioneranno con questi prodotti senza richiedere ulteriori modifiche delle informazioni o della struttura. Potresti tuttavia voler modificare alcune impostazioni per ottimizzare l'esperienza di accessibilità o implementare supporto aggiuntivo.

Alcune delle opzioni che puoi usare per testare gli scenari di accessibilità di base con Assistive Technology sono elencate in Test di accessibilità dell'app.

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

Le utilità per la lettura dello schermo permettono di accedere al testo di un'app convertendolo in un altro formato, ad esempio in un enunciato verbale o in Braille. L'esatto comportamento di una utilità per la lettura dello schermo dipende dal software e dal modo in cui l'utente lo ha configurato.

Alcune utilità per la lettura dello schermo, ad esempio, leggono l'intera interfaccia utente dell'app quando l'utente avvia l'app o accede a un'app visualizzata. In questo modo, l'utente riceve tutto il contenuto informativo disponibile prima di provare a esplorarlo. Alcune utilità per la lettura dello schermo leggono anche il testo associato a un singolo controllo quando questo riceve lo stato attivo per l'input durante gli spostamenti tramite tabulazione. In tal modo l'utente può orientarsi meglio mentre esplora i controlli di input di un'applicazione. L'Assistente vocale è un esempio di utilità per la lettura dello schermo in cui sono disponibili entrambi questi comportamenti, a seconda della scelta dell'utente.

L'informazione più importante che permette alle utilità per la lettura dello schermo o a qualsiasi altro strumento di assistive technology di aiutare gli utenti a comprendere un'app o a spostarsi al suo interno è un nome accessibile per gli elementi dell'app. In molti casi, controlli ed elementi hanno già un nome accessibile, che viene calcolato in base ai valori di altre proprietà che hai fornito in altro modo. Il caso più comune in cui puoi usare un nome già calcolato è quello di un elemento che supporta e visualizza testo interno. Per altri elementi è talvolta necessario trovare modi diversi per fornire un nome accessibile seguendo le procedure consigliate per la struttura degli elementi. E a volte dovrai fornire un nome che sia esplicitamente inteso come nome accessibile ai fini dell'accessibilità dell'app. Per un elenco dei valori calcolati che funzionano negli elementi di interfaccia utente comuni, e per altre informazioni sui nomi accessibili in generale, vedi Esposizione delle informazioni di base sugli elementi dell'interfaccia utente.

Esistono molte altre proprietà di automazione, tra cui le proprietà della tastiera descritte nella prossima sezione. Tuttavia non tutte le utilità per la lettura dello schermo supportano tutte le proprietà di automazione. In generale dovresti impostare tutte le proprietà di automazione appropriate ed effettuare un test per assicurarti di fornire il più ampio supporto possibile per le utilità per la lettura dello schermo.

Supporto per tastiera

Per assicurare un supporto per tastiera adeguato, devi assicurarti che ogni parte della tua applicazione possa essere usata con una tastiera. Se la tua app utilizza principalmente controlli standard e non usa controlli personalizzati, sei già a buon punto. Nel modello di controllo XAML di Windows Runtime di base è incluso il supporto per tastiera predefinito, che comprende lo spostamento tramite tabulazione, l'input di testo e il supporto per controlli specifici. Gli elementi che fungono da contenitori di layout, ad esempio i pannelli, usano l'ordine di layout per stabilire un ordine di tabulazione predefinito. Spesso si tratta dell'ordine di tabulazione corretto da usare per una rappresentazione accessibile dell'interfaccia utente. Se usi i controlli ListBox e GridView per visualizzare i dati, tali controlli supportano l'esplorazione con i tasti di direzione. Se invece usi un controllo Button, l'uso della BARRA SPAZIATRICE e del tasto INVIO per l'attivazione del pulsante viene gestito automaticamente.

Per altre info su tutti gli aspetti del supporto della tastiera nelle app di Windows Runtime, compreso l'ordine di tabulazione e l'attivazione o lo spostamento mediante tasti, vedi Implementazione dell'accessibilità da tastiera.

Elementi multimediali e didascalie

Nelle app di Windows Runtime scritte in C++, C# o Visual Basic gli elementi audiovisivi vengono in genere visualizzati tramite un oggetto MediaElement. Puoi usare le API di MediaElement per controllare la riproduzione multimediale. Ai fini dell'accessibilità fornisci controlli che consentano all'utente di avviare, sospendere e terminare la riproduzione dell'elemento multimediale al bisogno. Talvolta gli elementi multimediali includono componenti aggiuntivi destinati all'accessibilità, ad esempio sottotitoli o tracce audio alternative con descrizioni narrative. Per altre informazioni sui concetti correlati agli elementi multimediali, a MediaElemente all'accessibilità, vedi Come rendere accessibile il contenuto multimediale.

Testo accessibile

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

  • Gli strumenti devono determinare se il testo deve essere letto nell'ambito dell'attraversamento di una sequenza di tabulazioni o solo come parte della rappresentazione complessiva di un documento. Puoi agevolare questa verifica scegliendo l'elemento appropriato per la visualizzazione del testo o regolando le proprietà degli elementi di testo in questione. Ogni elemento di testo disponibile in un'app di Windows Runtime ha uno scopo specifico, a cui spesso corrisponde un ruolo di automazione interfaccia utente. Usare l'elemento sbagliato può comportare la segnalazione del ruolo sbagliato ad automazione interfaccia utente e quindi la creazione di un'esperienza che disorienterà l'utente di uno strumento di assistive technology.
  • Molti utenti soffrono di disturbi della vista che rendono difficile la lettura a meno che il testo sia adeguatamente contrastato rispetto allo sfondo. L'effetto che ciò produce sugli utenti non è intuitivo per i progettisti di app che non hanno lo stesso problema. La scelta di colori inadatti in fase di progettazione può ad esempio impedire agli utenti daltonici di riuscire a leggere il testo. Nelle raccomandazioni per l'accessibilità originariamente concepite per i contenuti Web sono definiti standard relativi al contrasto che consentono di evitare questi problemi anche nelle app. Per altre informazioni, vedi Come soddisfare i requisiti per il testo accessibile.
  • Molti utenti hanno difficoltà a leggere il testo semplicemente perché è troppo piccolo. Puoi evitare il problema in primo luogo rendendo ragionevolmente grande il testo dell'interfaccia utente della tua app. Questo può essere tuttavia problematico per le app che visualizzano grandi quantità di testo oppure testo intercalato con altri elementi visivi. In questi casi verifica che l'app interagisca correttamente con le funzionalità di sistema per l'ingrandimento dello schermo, in modo che qualsiasi testo nelle app venga ingrandito corrispondentemente. Alcuni utenti modificano i valori DPI come opzione di accessibilità, disponibile da Ingrandimento degli elementi sullo schermo in Accessibilità, che reindirizza a un'interfaccia utente del Pannello di controllo per Aspetto e personalizzazione/Schermo.

Supporto di temi a elevato contrasto

I controlli dell'interfaccia utente disponibili per le app di Windows Runtime scritte in C++, C# o Visual Basic usano una rappresentazione visiva definita nell'ambito del dizionario dei temi di una risorsa XAML. Alcuni di questi temi sono espressamente concepiti per essere usati quando il sistema è impostato per il contrasto elevato. Quando l'utente passa al contrasto elevato, cercando dinamicamente il tema appropriato in un dizionario di risorse, verrà utilizzato un tema a contrasto elevato appropriato anche per tutti i controlli dell'interfaccia utente. Verifica soltanto di non avere disabilitato i temi specificando uno stile esplicito o usando un'altra tecnica per l'applicazione di stili che impedisca ai temi a contrasto elevato di sostituire le modifiche che hai apportato agli stili. Per ulteriori informazioni, vedi Supporto dei temi a contrasto elevato.

Prevedere interfacce utente alternative in fase di progettazione

Quando progetti le tue app, pensa a come potranno essere usate da persone con problemi di mobilità, vista e udito. Poiché i prodotti di assistive technology fanno un uso intensivo dell'interfaccia utente standard, è particolarmente importante prevedere un supporto adeguato della tastiera e delle utilità per la lettura dello schermo, anche se non apporti altre modifiche per l'accessibilità.

In molti casi puoi veicolare informazioni essenziali usando varie tecniche per raggiungere un numero maggiore di potenziali utenti. Ad esempio, per evidenziare un'informazione puoi usare sia un'icona che un colore, in modo da aiutare gli utenti daltonici; e puoi visualizzare un allarme visivo insieme a un effetto sonoro, per aiutare gli utenti con problemi di udito.

Se necessario puoi fornire elementi dell'interfaccia utente alternativi e accessibili che rimuovano del tutto gli elementi e le animazioni non essenziali; o puoi apportare altre semplificazioni che agevolino l'esperienza utente. Il codice di esempio seguente illustra come visualizzare un'istanza di UserControl al posto di un'altra istanza, in base a un'impostazione utente.


<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>


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 informazioni sulle dichiarazioni di accessibilità e la pubblicazione della tua app, vedi Come dichiarare l'app accessibile in Windows Store.

Nota  La dichiarazione dell'app come accessibile è rilevante solo per Windows Store.

Supporto dei prodotti di assistive technology nei controlli personalizzati

Quando crei un controllo personalizzato, ti consigliamo di implementare o estendere anche una o più sottoclassi AutomationPeer per garantire il supporto dell'accessibilità. In alcuni casi, finché utilizzi la stessa classe peer utilizzata dalla classe dei controlli di base, il supporto dell'automazione per la classe derivata è adeguato a un livello base. Questo aspetto deve essere tuttavia verificato. L'implementazione di un peer è comunque consigliata come best practice, di modo che il peer possa dichiarare correttamente il nome della nuova classe di controlli. L'implementazione di un peer di automazione personalizzato richiede alcuni passaggi. Per altre info, vedi Peer di automazione personalizzati.

Supporto dei prodotti Assistive Technology nelle app che supportano l'interoperabilità XAML/Microsoft DirectX

Il contenuto DirectX ospitato in un'interfaccia utente XAML (tramite SwapChainPanel o SurfaceImageSource) non è accessibile per impostazione predefinita. L'esempio di interoperabilità tra DirectX e SwapChainPanel in XAML mostra come creare peer di automazione interfaccia utente per il contenuto DirectX ospitato. Con questa tecnica è possibile accedere al contenuto ospitato tramite Automazione interfaccia utente.

Argomenti correlati

Windows.UI.Xaml.Automation
Progettare per l'accessibilità
Accessibilità per le app di Windows Runtime scritte in JavaScript e HTML
Esempio di accessibilità XAML

 

 

Mostra:
© 2015 Microsoft