Procedura dettagliata: creazione di un'applicazione Windows ad Accesso facilitato
La creazione di applicazioni ad Accesso facilitato riveste un'importanza fondamentale per le aziende. Molti governi applicano normative sull'Accesso facilitato per la regolamentazione dell'acquisto di applicazioni software. Per potersi avvalere del logo Certified for Windows è inoltre necessario soddisfare anche requisiti di Accesso facilitato. Si stima che 30 milioni di residenti solo negli Stati Uniti, molti dei quali sono possibili clienti, siano interessati dall'accessibilità del software.
In questa sezione vengono illustrati i cinque requisiti di Accesso facilitato che è necessario soddisfare per ottenere il logo Certified for Windows. In base a tali requisiti, è necessario che un'applicazione ad Accesso facilitato presenti le seguenti caratteristiche:
Supporti le impostazioni relative a input, caratteri, colori e dimensioni del Pannello di controllo. La barra dei menu, la barra del titolo, i bordi e la barra di stato vengono ridimensionati automaticamente quando l'utente modifica le relative impostazioni nel Pannello di controllo. In questa applicazione non è necessario apportare modifiche aggiuntive ai controlli o al codice.
Supporti la modalità Contrasto elevato.
Consenta l'accesso da tastiera documentato a tutte le funzionalità.
Esponga la posizione dello stato attivo graficamente e a livello di codice.
Non utilizzi unicamente i segnali acustici per comunicare informazioni importanti.
Per ulteriori informazioni, vedere Risorse per la progettazione di applicazioni accessibili, la pagina Web "MSDN Online Certified for Windows Program" (https://www.microsoft.com/italy/traincert/default.mspx) e la pagina Web "Designed for Windows XP Application Specification" (https://go.microsoft.com/fwlink/?linkid=9775).
Per informazioni sul supporto dei diversi layout di tastiera, vedere Suggerimenti per lo sviluppo di applicazioni internazionali.
Creazione del progetto
In questa sezione viene creata l'interfaccia utente per un'applicazione che registra gli ordini delle pizze. L'interfaccia è composta da una classe TextBox per il nome del cliente, un gruppo RadioButton per la selezione della dimensione della pizza, una classe CheckedListBox per la selezione degli ingredienti, due controlli Button etichettati Order e Cancel e un Menu con un comando Exit.
L'utente immette il nome del cliente, la dimensione della pizza e gli ingredienti desiderati. Quando si fa clic sul pulsante Order, in una finestra di messaggio viene visualizzato un riepilogo dell'ordine e il relativo costo. I controlli vengono quindi azzerati e sono pronti per l'ordine successivo. Quando si fa clic sul pulsante Cancel, i controlli vengono azzerati e sono pronti per l'ordine successivo. Quando si fa clic sulla voce di menu Exit, il programma viene chiuso.
In questa sezione l'enfasi viene posta non tanto sul codice per un sistema di ordini per la vendita al dettaglio, quanto sull'Accesso facilitato dell'interfaccia utente. Vengono infatti illustrate le funzionalità di Accesso facilitato dei controlli utilizzati più di frequente, quali pulsanti, pulsanti di opzione, caselle di testo ed etichette.
Per iniziare la creazione dell'applicazione
- Creare a nuova applicazione Windows in Visual Basic o Visual C#. Assegnare al progetto il nome PizzaOrder. Per ulteriori dettagli, vedere Creazione di nuovi progetti e soluzioni.
Aggiunta di controlli al form
Quando si aggiungono controlli a un form è necessario tenere presente le seguenti indicazioni per la creazione di un'applicazione ad Accesso facilitato.
Impostare le proprietà AccessibleDescription e AccessibleName. In questo esempio è sufficiente utilizzare l'impostazione predefinita per la proprietà AccessibleRole. Per ulteriori informazioni sulle proprietà di Accesso facilitato, vedere Aggiunta di informazioni per l'Accesso facilitato ai controlli in un Windows Form.
Impostare la dimensione del carattere su 10 punti o su un valore superiore.
Nota
Se all'avvio si imposta la dimensione del tipo di carattere del form su 10, tutti i caratteri dei controlli aggiunti successivamente al form avranno una dimensione pari a 10 punti.
Assicurarsi che ogni controllo Label che descrive un controllo TextBox preceda immediatamente il controllo TextBox nell'ordine di tabulazione.
Aggiungere un tasto di scelta, utilizzando il carattere "&", alla proprietà Text di ogni controllo accessibile dall'utente.
Aggiungere un tasto di scelta, utilizzando il carattere "&", alla proprietà Text dell'etichetta che precede il controllo accessibile dall'utente. Impostare la proprietà UseMnemonic delle etichette su true, in modo che lo stato attivo venga impostato sul controllo successivo nell'ordine di tabulazione quando l'utente preme il tasto di scelta.
Aggiungere tasti di scelta a tutte le voci di menu.
Per rendere facilmente accessibile l'applicazione per Windows
Aggiungere i controlli al form e impostare le proprietà come illustrato di seguito. Per un modello relativo alla disposizione dei controlli nel form, vedere la figura riportata dopo la tabella.
Oggetto
Proprietà
Valore
Form1
AccessibleDescription
Order form
AccessibleName
Order form
Font Size
10
Text
Pizza Order Form
PictureBox
Name
logo
AccessibleDescription
A slice of pizza
AccessibleName
Company logo
Image
Any icon or bitmap
Etichetta
Name
companyLabel
Text
Good Pizza
TabIndex
1
AccessibleDescription
Company name
AccessibleName
Company name
Backcolor
Blu
Forecolor
Yellow
FontSize
18
Etichetta
Name
customerLabel
Text
&Name
TabIndex
2
AccessibleDescription
Customer name label
AccessibleName
Customer name label
UseMnemonic
True
TextBox
Name
customerName
Text
(nessuno)
TabIndex
3
AccessibleDescription
Customer name
AccessibleName
Customer name
GroupBox
Name
sizeOptions
AccessibleDescription
Pizza size options
AccessibleName
Pizza size options
Text
Pizza size
TabIndex
4
RadioButton
Name
smallPizza
Text
&Small $6.00
Selezionato
True
TabIndex
0
AccessibleDescription
Small pizza
AccessibleName
Small pizza
RadioButton
Name
largePizza
Text
&Large $10.00
TabIndex
1
AccessibleDescription
Large pizza
AccessibleName
Large pizza
Etichetta
Name
toppingsLabel
Text
&Toppings ($0.75 each)
TabIndex
5
AccessibleDescription
Toppings label
AccessibleName
Toppings label
UseMnemonic
True
CheckedListBox
Name
toppings
TabIndex
6
AccessibleDescription
Available toppings
AccessibleName
Available toppings
Items
Pepperoni, Sausage, Mushrooms
Button
Name
order
Text
&Order
TabIndex
7
AccessibleDescription
Total the order
AccessibleName
Total order
Button
Name
cancel
Text
&Cancel
TabIndex
8
AccessibleDescription
Cancel the order
AccessibleName
Cancel order
MainMenu
Name
theMainMenu
MenuItem
Name
fileCommands
Text
&File
MenuItem
Name
exitApp
Text
E&xit
Il form risulterà simile al seguente:
Supporto della modalità Contrasto elevato
La modalità Contrasto elevato è un'impostazione di sistema di Windows che consente una migliore leggibilità mediante l'utilizzo di dimensioni di caratteri e di colori contrastanti che risultano utili per gli utenti con disturbi alla vista. La proprietà SystemInformation.HighContrast Property consente di verificare se è impostata la modalità Contrasto elevato.
Se SystemInformation.HighContrast è impostata su true, l'applicazione si comporta come illustrato di seguito:
Visualizza tutti gli elementi dell'interfaccia utente mediante la combinazione di colori di sistema.
Comunica tutte le informazioni fornite mediante il colore anche mediante indicatori visivi o segnali acustici. Se ad esempio determinate voci dell'elenco vengono evidenziate utilizzando un carattere di colore rosso, è possibile applicare al carattere anche la formattazione in grassetto, in modo da consentire all'utente di identificare le voci evidenziate mediante una modalità alternativa al colore.
Omette eventuali immagini o motivi dietro il testo
L'applicazione controlla l'impostazione di HighContrast all'avvio e risponde all'evento di sistema UserPreferenceChanged. L'evento UserPreferenceChanged viene generato in seguito a ogni modifica del valore di HighContrast.
Nell'applicazione sviluppata l'unico elemento che non utilizza le impostazioni di sistema relative al colore è lblCompanyName. La classe SystemColors Class viene utilizzata per modificare le impostazioni dei colori dell'etichetta nei colori di sistema selezionati dall'utente.
Per attivare correttamente la modalità Contrasto elevato
Creare un metodo per impostare i colori dell'etichetta sui colori di sistema.
' Visual Basic Private Sub SetColorScheme() If SystemInformation.HighContrast Then companyLabel.BackColor = SystemColors.Window companyLabel.ForeColor = SystemColors.WindowText Else companyLabel.BackColor = Color.Blue companyLabel.ForeColor = Color.Yellow End If End Sub // C# private void SetColorScheme() { if (SystemInformation.HighContrast) { companyLabel.BackColor = SystemColors.Window; companyLabel.ForeColor = SystemColors.WindowText; } else { companyLabel.BackColor = Color.Blue; companyLabel.ForeColor = Color.Yellow; } }
Chiamare la routine SetColorScheme nel costruttore di form (Public Sub New() in Visual Basic e public class Form1 in Visual C#). Per accedere al costruttore in Visual Basic è necessario espandere l'area con etichetta Codice generato da Progettazione Windows Form.
' Visual Basic Public Sub New() MyBase.New() InitializeComponent() SetColorScheme() End Sub // C# public Form1() { InitializeComponent(); SetColorScheme(); }
Creare una routine eventi, con la firma appropriata, per rispondere all'evento UserPreferenceChanged.
' Visual Basic Protected Sub UserPreferenceChanged(ByVal sender As Object, _ ByVal e As Microsoft.Win32.UserPreferenceChangedEventArgs) SetColorScheme() End Sub // C# public void UserPreferenceChanged(object sender, Microsoft.Win32.UserPreferenceChangedEventArgs e) { SetColorScheme(); }
Aggiungere al costruttore di form, dopo la chiamata a InitializeComponents, il codice necessario per associare la routine eventi all'evento di sistema. Questo metodo chiama la routine SetColorScheme .
' Visual Basic Public Sub New() MyBase.New() InitializeComponent() SetColorScheme() AddHandler Microsoft.Win32.SystemEvents.UserPreferenceChanged, _ AddressOf Me.UserPreferenceChanged End Sub // C# public Form1() { InitializeComponent(); SetColorScheme(); Microsoft.Win32.SystemEvents.UserPreferenceChanged += new Microsoft.Win32.UserPreferenceChangedEventHandler( this.UserPreferenceChanged); }
Aggiungere al metodo Dispose del form, prima della chiamata al metodo Dispose della classe base, il codice necessario per rilasciare l'evento alla chiusura dell'applicazione. Per accedere al metodo Dispose in Visual Basic, è necessario espandere l'area con etichetta Codice generato da Progettazione Windows Form.
Nota
Il codice dell'evento di sistema viene eseguito su un thread distinto dall'applicazione principale. Se l'evento non viene rilasciato, il codice a esso associato verrà eseguito anche dopo la chiusura del programma.
' Visual Basic Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If RemoveHandler Microsoft.Win32.SystemEvents.UserPreferenceChanged, _ AddressOf Me.UserPreferenceChanged MyBase.Dispose(disposing) End Sub // C# protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) { components.Dispose(); } } Microsoft.Win32.SystemEvents.UserPreferenceChanged -= new Microsoft.Win32.UserPreferenceChangedEventHandler( this.UserPreferenceChanged); base.Dispose( disposing ); }
Premere F5 per eseguire l'applicazione.
Comunicazione di importanti informazioni mediante modalità alternative ai segnali acustici
In questa applicazione le informazioni non vengono comunicate solo mediante segnali acustici. Se nell'applicazione si utilizzano segnali acustici sarà necessario utilizzare anche altre modalità per la comunicazione delle informazioni.
Per comunicare informazioni mediante modalità alternative ai segnali acustici
Rendere lampeggiante la barra del titolo mediante la funzione API FlashWindow di Windows . Per un esempio di chiamata delle funzioni API di Windows, vedere Procedura dettagliata: chiamata delle funzioni API di Windows.
Nota
Se il servizio Segnali visivi di Windows è attivato, la finestra lampeggia quando i segnali acustici del sistema vengono emessi tramite l'altoparlante incorporato del computer.
Visualizzare le informazioni importanti in una finestra non modale, in modo da consentire all'utente di interagire con tali informazioni. Per ulteriori dettagli, vedere Visualizzazione di Windows Form modali e non.
Visualizzare una finestra di messaggio che acquisisce lo stato attivo. Non utilizzare questo metodo durante la digitazione da parte dell'utente.
Visualizzare un indicatore di stato nell'area di notifica dello stato della barra delle applicazioni. Per ulteriori dettagli, vedere Aggiunta di icone alla barra delle applicazioni mediante il componente NotifyIcon di Windows Form.
Verifica dell'applicazione
Prima di distribuire l'applicazione è necessario eseguire il test delle funzionalità di Accesso facilitato implementate.
Per eseguire il test delle funzionalità di Accesso facilitato
Per eseguire il test dell'accesso da tastiera scollegare il mouse ed esplorare ciascuna funzionalità dell'interfaccia utente utilizzando solo la tastiera. Assicurarsi che tutte le attività possano essere eseguite mediante il solo utilizzo della tastiera.
Per eseguire il test del supporto della modalità di Contrasto elevato, selezionare l'icona Accesso facilitato nel Pannello di controllo. Fare clic sulla scheda Schermo e selezionare la casella di controllo Usa contrasto elevato. Spostarsi tra gli elementi dell'interfaccia utente per verificare che vengano applicate le modifiche apportate ai caratteri e ai colori. Assicurarsi infine che non vengano visualizzati motivi o immagini dietro il testo.
Nota
L'icona Accesso facilitato non è disponibile nel Pannello di controllo di Windows NT 4 e pertanto in tale sistema operativo la procedura descritta per la modifica dell'impostazione SystemInformation.HighContrast non è utilizzabile.
Sono disponibili altri strumenti per eseguire il test delle funzionalità di Accesso facilitato di un'applicazione.
Per eseguire il test dell'esposizione dello stato attivo, eseguire Magnifier. Per aprirlo, scegliere Programmi dal menu Start, quindi Accessori e Accesso facilitato, infine fare clic su Magnifier. Spostarsi nell'interfaccia utente utilizzando i tasti di tabulazione e il mouse. Assicurarsi che lo spostamento venga rilevato correttamente in Magnifier.
Per eseguire il test dell'esposizione degli elementi dello schermo, eseguire Inspect e spostarsi su ciascun elemento mediante il mouse e il tasto TAB. Assicurarsi che le informazioni visualizzate nei campi Nome, Stato, Ruolo, Posizione e Valore della finestra di Inspect relative a ciascun oggetto dell'interfaccia utente siano significative per l'utente. Inspect viene installato come parte di Microsoft® Active Accessibility® SDK, disponibile all'indirizzo https://msdn.microsoft.com/library/default.asp?url=/downloads/list/accessibility.asp