Condividi tramite


Supporto per l'accesso facilitato in ASP.NET

Aggiornamento: novembre 2007

ASP.NET consente di creare applicazioni Web a cui possono accedere gli utenti con particolari esigenze. Le applicazioni Web con accesso facilitato consentono di utilizzare tecnologie che assistono utenti disabili, ad esempio lettori di schermo, per l'uso di pagine Web. Le applicazioni Web con accesso facilitato presentano i seguenti vantaggi:

  • Possono essere utilizzate dal maggior numero possibile di destinatari.

  • Comportano principi di progettazione che spesso offrono vantaggi a tutti gli utenti, non solo quelli con particolari esigenze.

  • Soddisfano i requisiti di molti istituti che richiedono l'accesso facilitato a tutte le applicazioni Web.

Si consiglia di leggere attentamente le indicazioni per l'accesso facilitato e capire come sia possibile soddisfare i requisiti di accessibilità con ASP.NET al fine di creare applicazioni con cui gli utenti disabili possano interagire più facilmente.

Indicazioni per l'accesso facilitato

Varie organizzazioni pubblicano indicazioni per la creazione di applicazioni ad accesso facilitato. Di seguito sono riportate le indicazioni più diffuse:

  • Web Content Accessibility Guidelines 1.0 (WCAG).

    Questi standard vengono sviluppati dal World Wide Web Consortium (W3C) e costituiscono le basi per molti altri standard di accesso facilitato. Sono inclusi gli standard di accesso facilitato utilizzati da diversi governi.

    Per le linee guida relative all'accesso facilitato a contenuto Web, visitare il sito World Wide Web Consortium (W3C) (informazioni in lingua inglese).

    Le indicazioni WCAG definiscono diversi livelli di priorità, in base a una scala da 1 a 3 per le verifiche associate a ciascuna indicazione. Alcuni istituti richiedono che tutti i siti Web siano conformi alle verifiche di priorità 1 e 2.

  • Sezione 508.

    Il governo degli Stati Uniti definisce gli standard di accesso facilitato nella sezione 508 del Rehabilitation Act. Questi standard sono simili alle indicazioni WCAG.

    Per le linee guida della sezione 508, visitare il sito Web all'indirizzo http://www.section508.gov (informazioni in lingua inglese).

  • Linee guida per l'accesso facilitato di Microsoft.

    Per le linee guida relative all'accesso facilitato di Microsoft, visitare il sito Microsoft Accessibilità e il sito MSDN Library e cercare "Accessibility Design Guidelines for the Web".

Verifica dell'accesso facilitato

È possibile, nei limiti, verificare la conformità delle pagine Web agli standard di accesso facilitato con una varietà di strumenti di terze parti.

Se si dispone di un ambiente di sviluppo, ad esempio Microsoft Visual Studio 2005, questo può offrire strumenti per la verifica dell'accesso facilitato. Per ulteriori informazioni, consultare la documentazione del prodotto. Tuttavia gli strumenti per la convalida dell'accesso facilitato in fase di progettazione non verificano l'output generato dinamicamente, ad esempio il codice sottoposto a rendering dai controlli server ASP.NET o dal proprio codice. Si consiglia di eseguire il test dell'output delle pagine oltre a utilizzare gli strumenti per la convalida dell'accesso facilitato in fase di progettazione.

Una verifica automatica dell'accesso facilitato non è in grado di eseguire una diagnosi completa dell'accesso facilitato di una pagina o un sito Web. Secondo molte indicazioni per l'accesso facilitato è necessario determinare se le funzionalità di una pagina soddisfano i requisiti. Ad esempio, una verifica automatica può determinare se si è fornito un testo alt per tutte le immagini sulla pagina. Tuttavia questa verifica non è in grado di stabilire se il testo alt descrive l'immagine. Allo stesso modo una verifica automatica non è in grado di determinare oggettivamente se i colori utilizzati sulla pagina sono sufficientemente in contrasto per le utilità di lettura che richiedono un testo con un contrasto notevole. Pertanto, per creare applicazioni ad accesso facilitato vere e proprie, è necessario avere dimestichezza con le specifiche e lo scopo delle indicazioni in modo da potere creare le pagine e soddisfare i requisiti di accesso facilitato. Per un altro esempio di una verifica dell'accesso facilitato che potrebbe non essere eseguita da uno strumento, il testo alt deve esistere per un'immagine di sola grafica, ad esempio un bordo arrotondato di una tabella, altrimenti un lettore di schermo leggerà il file di immagine. Se il testo alt è vuoto, l'utilità per la lettura dello schermo ignorerà correttamente l'immagine.

Funzionalità di accesso facilitato in ASP.NET

La maggior parte delle volte i controlli ASP.NET eseguono il rendering del codice di pagine che soddisfano gli standard di accesso facilitato o espongono le proprietà che è possibile impostare per rendere le pagine accessibili. Tuttavia, a volte, i controlli ASP.NET eseguono il rendering di output che non è conforme a tutti gli standard di accesso facilitato. Per informazioni dettagliate, vedere Controlli ASP.NET e accesso facilitato.

Funzionalità generali dei controlli che supportano l'accesso facilitato

Generalmente i controlli ASP.NET soddisfano i requisiti di accesso facilitato nei modi seguenti:

  • Consentono di specificare un testo equivalente per qualsiasi elemento non di testo.

  • Non hanno dipendenze di colore.

  • Eseguono il rendering delle didascalie e delle intestazioni delle colonne delle tabelle con le tabelle.

  • Eseguono il rendering degli elementi fieldset e legend che hanno elementi div.

  • Non richiedono fogli di stile.

  • Supportano il posizionamento mediante le proprietà di stile.

  • Associano le etichette con i controlli.

  • Generano script client indipendenti dal dispositivo, ad esempio script che non rispondono solo ai clic del mouse.

Accesso da tastiera

Una caratteristica importante dell'accesso facilitato è la disponibilità della funzionalità della pagina per form alternativi di input. In pratica ciò significa che le operazioni che è possibile eseguire con il mouse possono essere eseguite anche con la tastiera.

ASP.NET consente di includere il supporto tramite tastiera per le pagine nei modi seguenti:

  • È possibile impostare l'ordine di tabulazione per i controlli mediante la proprietà TabIndex.

  • È possibile specificare un pulsante predefinito per un form o un controllo Panel mediante l'impostazione della proprietà DefaultButton.

  • È possibile impostare lo stato attivo sui controlli di input mediante l'utilizzo di metodi quale SetFocus o l'impostazione della proprietà DefaultFocus per un form.

  • È possibile definire i tasti di scelta per i controlli dei pulsanti mediante l'impostazione della proprietà AccessKey.

  • È possibile utilizzare i controlli Label con le caselle di testo, che consentono di definire i tasti di scelta per le caselle di testo. Per informazioni dettagliate, vedere Procedura: utilizzare i controlli server Web Label come didascalie.

Immagini e testo alternativo

Secondo le indicazioni per l'accesso facilitato è necessario fornire testo alternativo significativo per le immagini sulla pagina che hanno uno scopo funzionale, ad esempio le immagini che fungono da pulsanti o le immagini che vengono sottoposte a rendering dai controlli di dati. Ciò consente ai lettori di schermo di specificare lo scopo di ciascuna immagine sulla pagina. Se un'immagine non ha altro scopo funzionale se non quello decorativo, è necessario impostare il testo alternativo su una stringa vuota in modo che i lettori di schermo omettano l'immagine.

Per impostazione predefinita, poiché i controlli Image, ImageButton e ImageMap non possono generare automaticamente testo significativo, non eseguono il rendering di alcun testo alternativo. Questo testo va invece fornito. I programmi di verifica dell'accesso facilitato consentono di indicare i controlli immagine senza testo alternativo che sono in violazione delle indicazioni.

Per i controlli immagine è necessario eseguire una delle seguenti operazioni:

  • Impostare la proprietà AlternateText su testo significativo.

  • Impostare la proprietà GenerateEmptyAlternateText su true per fare sì che un controllo ASP.NET Image esegua il rendering di una stringa vuota come testo alternativo. Il testo alternativo vuoto viene interpretato dai programmi di verifica dell'accesso facilitato come un'immagine non importante.

Controlli con immagini o collegamenti intrinseci

Alcuni controlli, ad esempio il controllo TreeView, il controllo Menu e Web part, eseguono il rendering di immagini o collegamenti come parte del codice. In questi casi per ciascuna immagine o ciascun collegamento il controllo crea un testo alternativo che ne descrive la funzione.

Ad esempio, il controllo TreeView esegue il rendering delle immagini per i pulsanti di espansione e compressione di ciascun nodo. Il controllo TreeView genera testo alternativo per queste immagini in base al testo del nodo. Per impostazione predefinita il testo alternativo per l'immagine per l'espansione di un nodo con il testo Avvio viene sottoposto a rendering come Espandi Avvio. È possibile specificare un testo alternativo personalizzato mediante l'impostazione delle proprietà ExpandImageToolTip e CollapseImageToolTip per il controllo TreeView.

Allo stesso modo il comando Menu esegue il rendering di testo alternativo per i collegamenti che genera per espandere e comprimere le voci di menu. Analogamente i pulsanti nella barra del titolo di un controllo Web part eseguono il rendering di testo alternativo che descrive la funzione di ciascun pulsante.

Omissione dei collegamenti ripetitivi

I dispositivi che assistono utenti disabili, ad esempio i lettori di schermo, devono enumerare tutti i collegamenti di una pagina nell'ordine in cui sono visualizzate le pagine. A volte, ad esempio, in un menu di una pagina master visualizzata in cima a ogni pagina del sito Web, il lettore di schermo è costretto a leggere tutte le voci su ciascuna pagina prima di passare al contenuto principale della pagina. In questi casi, secondo le indicazioni per l'accesso facilitato, è necessario consentire agli utenti di omettere gli elenchi di collegamenti ripetitivi. I seguenti controlli consentono di omettere i collegamenti ripetitivi:

Ciascuno di questi controlli supporta una proprietà SkipLinkText. Se è necessario impostare questa proprietà su una stringa (che può includere qualsiasi testo), il controllo esegue il rendering di un ancoraggio prima dei collegamenti che include un'immagine .gif invisibile con testo alternativo. Per impostazione predefinita il testo alternativo è Skip Navigation Links, ma è possibile configurarlo. L'ancoraggio si collega a un altro ancoraggio che segue il controllo. In questo modo i lettori di schermo e le tecnologie simili consentono agli utenti di omettere i collegamenti generati dal controllo, senza interferire visivamente con la visualizzazione della pagina. Se la proprietà SkipLinkText è impostata su una stringa vuota, il controllo non esegue il rendering dei tag di ancoraggio.

Controlli che eseguono il rendering delle tabelle

Secondo le indicazioni per l'accesso facilitato le tabelle HTML devono includere quanto segue:

  • Una didascalia che consenta alle tecnologie che assistono gli utenti disabili di identificare lo scopo della tabella.

  • Un modo di identificare le intestazioni delle colonne.

Se si utilizza il controllo Table per creare una tabella, è possibile impostarne esplicitamente la proprietà Caption. È possibile creare le intestazioni delle tabelle mediante la classe TableHeaderRow e l'impostazione della proprietà TableSection sull'enumerazione TableHeader della classe TableRowSection. In questo modo la tabella esegue il rendering di un elemento thead. Quando si creano celle con il controllo TableCell, è possibile impostare ciascuna proprietà AssociatedHeaderCellID per la cella sull'ID di una cella di un'intestazione della tabella. La cella esegue quindi il rendering di un attributo header che associa la cella con l'intestazione della colonna corrispondente.

I controlli server ASP.NET seguenti possono eseguire il rendering delle tabelle HTML:

Questi controlli consentono di impostare le proprietà Caption e CaptionAlign per creare le didascalie consigliate per la tabella risultante.

Nel caso di questi controlli, se si imposta la proprietà UseAccessibleHeader, il controllo esegue il rendering degli elementi th con gli attributi scope per identificare le intestazioni delle colonne.

Altri due controlli, DataList e Repeater, non eseguono il rendering automatico degli elementi thead o th. Tuttavia per questi controlli è possibile definire i modelli delle intestazioni. Per il controllo DataList i modelli delle intestazioni eseguono il rendering degli elementi th. Il controllo Repeater non esegue il rendering automatico di alcun codice. Per questo controllo è possibile definire i modelli dell'intestazione, del corpo e del piè di pagina, in cui è possibile specificare qualsiasi codice. Se si specifica che il controllo Repeater deve eseguire il rendering di una tabella HTML, è necessario includere il codice appropriato per soddisfare i requisiti dell'accesso facilitato.

Controlli che eseguono il rendering di elementi div

Secondo le indicazioni per l'accesso facilitato è necessario dividere i form lunghi in sezioni per facilitarne la navigazione. HTML 4.0 ha introdotto gli elementi fieldset e legend per consentire agli sviluppatori di pagine Web di dividere un form in sezioni.

In ASP.NET è possibile utilizzare il controllo Panel per creare suddivisioni in un form. Se si imposta la proprietà GroupingText per il controllo su una stringa, il controllo Panel esegue il rendering di un elemento div che contiene un elemento fieldset per il contenuto e un elemento legend con la stringa che si è utilizzata nella proprietà GroupingText.

Alcuni controlli Web part eseguono il rendering anche degli elementi div. Questi controlli eseguono il rendering degli elementi fieldset e legend automaticamente.

Controlli di convalida

Molte pagine Web visualizzano un asterisco (*) accanto a una casella di testo quando una voce è obbligatoria o se l'utente ha commesso un errore durante l'inserimento dei dati. Poiché un asterisco non è significativo, è necessario specificare sempre messaggi di errore significativi nelle proprietà Text e ErrorMessage dei controlli di convalida.

Inoltre i controlli di convalida devono disattivare gli script client (EnableClientScript=false).

Controlli di accesso

I controlli di accesso, ad esempio i controlli Login, ChangePassword, PasswordRecovery e CreateUserWizard, includono altri controlli, ad esempio Label, TextBox e i controlli di convalida. Poiché gli sviluppatori di pagine Web non controllano per forza direttamente il rendering dei controlli di accesso, questi ultimi sono stati progettati in funzione dell'accesso facilitato. Ad esempio, i controlli si comportano nel modo seguente quando supportano l'accesso facilitato:

  • Alle caselle di testo sono associate delle etichette.

  • I controlli di input prevedono impostazioni dell'indice di tabulazione.

Tuttavia, se si creano dei modelli per questi controlli di accesso, è necessario configurare i controlli nei modelli in modo che soddisfino i requisiti di accesso facilitato.

Script client e controlli server ASP.NET

Secondo gli standard WCAG le pagine non devono utilizzare gli script client per scopi funzionali, ma solo per scopi non essenziali, ad esempio le attivazioni del mouse. La sezione 508 prevede l'utilizzo di script client se le tecnologie che assistono utenti disabili possono usare i valori restituiti dagli script.

Diversi controlli server Web ASP.NET dipendono dagli script client. Di seguito è riportato un esempio:

  • I controlli LinkButton e ImageButton richiedono script client per eseguire i postback.

  • Il controllo Calendar richiede script client per il supporto del clic dei collegamenti dei giorni.

  • I controlli Web part fanno affidamento sugli script client per i collegamenti di chiusura, riduzione a icona e modifica.

Per un elenco completo dei controlli che utilizzano script client, vedere Controlli server Web ASP.NET che utilizzano script client.

Pertanto, se si utilizza uno dei controlli di una pagina che richiede script client, la pagina non risulta conforme agli standard WCAG. Se l'applicazione Web deve essere compatibile al 100% con gli standard WCAG, non è possibile utilizzare alcun controllo della pagina che faccia affidamento su script client. Tuttavia questi controlli sono conformi agli standard della sezione 508 per l'utilizzo di script client in una pagina.

Vedere anche

Concetti

Controlli ASP.NET e accesso facilitato