Controlli ASP.NET e accessibilità

Cambia visualizzazione:
ScriptFree
.NET Framework 4 - ASP.NET
Controlli ASP.NET e accessibilità
Il presente articolo è stato tradotto manualmente. Per visualizzare questa pagina e contemporaneamente visualizzarne il contenuto in lingua inglese, passare alla visualizzazione semplificata.

Per impostazione predefinita, la maggior parte dei controlli server ASP.NET genera markup conforme alle linee guida sull'accessibilità. In alcuni casi è necessario configurare un controllo al fine della generazione di markup accessibile. In alcuni casi i controlli server ASP.NET non possono generare markup conforme a certe linee guida sull'accessibilità.

Nelle seguenti sezioni vengono elencati i controlli server ASP.NET e vengono illustrate considerazioni sull'accessibilità relative a ciascun controllo. Se un controllo non è elencato in questo argomento, tale controllo genera markup conforme alle linee guida per l'accessibilità senza necessità di configurazione.

NotaNota

Le precedenti versioni delle linee guida per l'accessibilità richiedono l'accessibilità di ogni funzionalità di un sito Web senza l'utilizzo di script client. Se si desidera evitare l'utilizzo di script client per rispettare le linee guida precedenti, vedere Controlli server Web ASP.NET che utilizzano script client.

Per ulteriori informazioni sulle linee guida per l'accessibilità e su come creare pagine Web ASP.NET conformi a esse, vedere Accessibilità in Visual Studio e ASP.NET.

In questo argomento sono incluse le sezioni seguenti:

Controlli della Casella degli strumenti standard

Controllo

Considerazioni sull'Accesso facilitato

AdRotator

La proprietà Target viene rappresentata come attributo target. Vedere la nota 1.

Per le versioni di ASP.NET anteriori alla versione 4, il controllo esegue il rendering di un attributo disabled quando la proprietà IsEnabled è impostata su false. Vedere la nota 2.

BulletedList

La proprietà Target esegue il rendering come attributo target. Vedere la nota 1.

Calendar

Il rendering del layout del controllo viene eseguito utilizzando una tabella HTML. Vedere la nota 3. Per eseguire il rendering di una didascalia per la tabella, impostare le proprietà Caption e CaptionAlign del controllo.

Per le versioni di ASP.NET anteriori alla versione 4, il controllo esegue il rendering di un attributo disabled quando la proprietà IsEnabled è impostata su false. Vedere la nota 2.

CheckBoxList

L'impostazione della proprietà RepeatLayout su Table (valore predefinito) comporta l'esecuzione del rendering del layout del controllo mediante una tabella HTML. Vedere la nota 3.

DropDownList

Il controllo non supporta l'elemento optgroup al fine di consentire la suddivisione dell'elenco in sezioni.

Per le versioni di ASP.NET anteriori alla versione 4, il controllo esegue il rendering di un attributo disabled quando la proprietà IsEnabled è impostata su false. Vedere la nota 2.

HyperLink

Se si imposta la proprietà ImageUrl sull'URL di un file grafico, impostare la proprietà Text per specificare il testo alternativo per la grafica risultante. Vedere la nota 5.

La proprietà Target viene rappresentata come attributo target. Vedere la nota 1.

Per le versioni di ASP.NET anteriori alla versione 4, il controllo esegue il rendering di un attributo disabled quando la proprietà IsEnabled è impostata su false. Vedere la nota 2.

Image , ImageButton, ImageMap

Impostare la proprietà AlternateText o GenerateEmptyAlternateText per fornire un valore per l'attributo alt. Vedere la nota 5.

Per le versioni di ASP.NET anteriori alla versione 4, il controllo esegue il rendering di un attributo disabled quando la proprietà IsEnabled è impostata su false. Vedere la nota 2.

Label

Per utilizzare il controllo per eseguire il rendering di un elemento label per una casella di testo o un altro controllo progettato per l'input dell'utente, impostare la proprietà AssociatedControlID sull'ID del controllo da associare all'etichetta.

Per le versioni di ASP.NET anteriori alla versione 4, il controllo esegue il rendering di un attributo disabled quando la proprietà IsEnabled è impostata su false. Vedere la nota 2.

LinkButton , Panel

Per le versioni di ASP.NET anteriori alla versione 4, il controllo esegue il rendering di un attributo disabled quando la proprietà IsEnabled è impostata su false. Vedere la nota 2.

RadioButtonList

L'impostazione della proprietà RepeatLayout su Table (valore predefinito) comporta l'esecuzione del rendering del layout del controllo mediante una tabella HTML. Vedere la nota 3.

Table , TableRow, TableCell, TableHeaderCell, TableHeaderRow e TableFooterRow

Per eseguire il rendering di una didascalia per la tabella, impostare le proprietà Caption e CaptionAlign del controllo.

Quando si crea un oggetto Table, includere i controlli TableHeaderRow e TableHeaderCell. I valori predefiniti dei controlli TableHeaderRow e TableFooterRow determinano l'esecuzione del rendering degli elementi thead, tbody e tfoot.

Nei controlli TableCell impostare la proprietà AssociatedHeaderCellID per fare sì che il controllo esegua il rendering di un elemento header che associa la cella con l'intestazione.

Impostare la proprietà Scope del controllo per associare l'intestazione con la colonna di dati corrispondente.

Per le versioni di ASP.NET anteriori alla versione 4, il controllo esegue il rendering di un attributo disabled quando la proprietà IsEnabled è impostata su false. Vedere la nota 2.

Wizard

Il rendering del layout del controllo viene eseguito utilizzando una tabella HTML. Vedere la nota 3. Per la creazione di markup basato su CSS (Cascading Style Sheets) per il layout anziché una tabella, utilizzare le proprietà modello del controllo.

Per le versioni di ASP.NET anteriori alla versione 4, il controllo esegue il rendering di un attributo disabled quando la proprietà IsEnabled è impostata su false. Vedere la nota 2.

Controlli della Casella degli strumenti di dati

Controllo

Considerazioni sull'Accesso facilitato

DataList , DataListItem

Il rendering del layout del controllo viene eseguito utilizzando una tabella HTML. Vedere la nota 3. Per la creazione di markup basato su CSS (Cascading Style Sheets) per il layout anziché una tabella, utilizzare il controllo ListView.

Per le versioni di ASP.NET anteriori alla versione 4, il controllo esegue il rendering di un attributo disabled quando la proprietà IsEnabled è impostata su false. Vedere la nota 2.

DataPager

Se gli oggetti campo del pager sono configurati per l'utilizzo di immagini, non sarà possibile specificare in modo esplicito un testo alternativo per le immagini utilizzate, poiché queste utilizzano le proprietà di testo, ad esempio NextPageText, come testo alternativo. In alternativa, è possibile utilizzare l'oggetto TemplatePagerField in modo da poter definire con esattezza gli oggetti visualizzati dal pager.

DetailsView

Il rendering del layout del controllo viene eseguito utilizzando una tabella HTML. Vedere la nota 3. Per la creazione di markup basato su CSS (Cascading Style Sheets) per il layout anziché una tabella, utilizzare le proprietà modello del controllo.

Se si crea una colonna ButtonField e si specifica un'immagine per il pulsante, non è possibile specificare esplicitamente testo alternativo per l'immagine. L'immagine utilizza la proprietà Text del pulsante come testo alternativo.

Se si abilita il paging e si impostano le proprietà NextPageImageUrl e PreviousPageImageUrl, non è possibile impostare esplicitamente il testo alternativo per le immagini utilizzate come pulsanti di paging. Utilizzare invece la proprietà PagerTemplate in modo da definire esattamente il contenuto visualizzato dal pager.

Alle caselle di testo generate automaticamente quando si imposta la proprietà AutoGenerateEditButton del controllo su true non è associato alcun elemento label. Per evitare ciò, creare dei campi modello, aggiungere i controlli Label e TextBox, quindi creare l'associazione manualmente. Per eseguire il rendering di una didascalia per la tabella, impostare le proprietà Caption e CaptionAlign del controllo.

Per le versioni di ASP.NET anteriori alla versione 4, il controllo esegue il rendering di un attributo disabled quando la proprietà IsEnabled è impostata su false. Vedere la nota 2.

FormView

Il rendering del layout del controllo viene eseguito utilizzando una tabella HTML. Per la creazione di markup basato su CSS (Cascading Style Sheets) per il layout anziché una tabella, utilizzare le proprietà modello del controllo. Vedere la nota 3 e la nota 4.

Per eseguire il rendering di una didascalia per la tabella, impostare le proprietà Caption e CaptionAlign del controllo.

Per le versioni di ASP.NET anteriori alla versione 4, il controllo esegue il rendering di un attributo disabled quando la proprietà IsEnabled è impostata su false. Vedere la nota 2.

GridView

Impostare la proprietà TableSection della proprietà HeaderRow su TableHeader per indurre la generazione degli elementi thead e tbody.

Impostare la proprietà RowHeaderColumn sul nome di un campo dati e la proprietà UseAccessibleHeader su true per fare in modo che il controllo esegua il rendering degli elementi th e degli attributi scope. Tale operazione avrà effetto solo sui campi associati, non sui campi modello.

Se si crea un oggetto ButtonField e si specifica un'immagine per il pulsante, non è possibile specificare esplicitamente testo alternativo per l'immagine. L'immagine utilizza la proprietà Text dell'oggetto come testo alternativo.

Per eseguire il rendering di una didascalia per la tabella, impostare le proprietà Caption e CaptionAlign del controllo.

Se si abilita il paging e si impostano le proprietà NextPageImageUrl e PreviousPageImageUrl, non è possibile impostare esplicitamente il testo alternativo per le immagini utilizzate come pulsanti di paging. Utilizzare invece la proprietà PagerTemplate in modo da definire esattamente il contenuto visualizzato dal pager.

Alle caselle di testo generate automaticamente quando si imposta la proprietà AutoGenerateEditButton del controllo su true non è associato alcun elemento label. Per evitare ciò, creare colonne modello, aggiungere i controlli Label e TextBox personalizzati, quindi creare l'associazione manualmente.

Per le versioni di ASP.NET anteriori alla versione 4, il controllo esegue il rendering di un attributo disabled quando la proprietà IsEnabled è impostata su false. Vedere la nota 2.

ListView

Per le versioni di ASP.NET anteriori alla versione 4, il controllo esegue il rendering di un attributo disabled quando la proprietà IsEnabled è impostata su false. Vedere la nota 2.

Controlli della Casella degli strumenti di convalida

Controllo

Considerazioni sull'Accesso facilitato

Controlli validator

Impostare le proprietà Text e ErrorMessage su messaggi di errore significativi. Non impostarle su un asterisco (*).

ValidationSummary

Per le versioni di ASP.NET anteriori alla versione 4, il controllo esegue il rendering di un attributo disabled quando la proprietà IsEnabled è impostata su false. Vedere la nota 2.

Controlli della Casella degli strumenti di navigazione

Controllo

Considerazioni sull'Accesso facilitato

Menu

Se l'attributo controlRenderingCompatibilityVersion dell'elemento pages nel file Web.config viene impostato su 3.5 o un valore inferiore, o se la proprietà RenderingMode viene impostata su Table, il rendering del layout del controllo viene eseguito utilizzando una tabella HTML. Vedere la nota 3.

Il controllo genera codice HTML conforme agli standard ARIA quando si verificano le condizioni seguenti:

  • L'attributo controlRenderingCompatibilityVersion dell'elemento pages nel file Web.config viene impostato su 4.0 o un valore superiore.

  • La proprietà Menu.RenderingMode viene impostata su MenuRenderingMode.Default o MenuRenderingMode.List.

Per evitare errori di convalida del markup, gli attributi ARIA vengono impostati tramite JavaScript. Per ulteriori informazioni su ARIA, vedere Accessibilità in Visual Studio e ASP.NET.

L'utilizzo della proprietà SkipLinkText offre al software per la lettura dello schermo la possibilità di ignorare l'intero controllo. Se la proprietà SkipLinkText è impostata, viene eseguito il rendering di un'immagine invisibile con testo alternativo, consentendo all'utente di andare direttamente alla fine del controllo. Il software per la lettura dello schermo riproduce vocalmente il testo alternativo e l'immagine occupa soltanto un pixel. È possibile impostare la proprietà SkipLinkText su una stringa vuota ("") per fornire un meccanismo personalizzato per ignorare il menu. Per impostazione predefinita, la proprietà SkipLinkText è impostata su "Ignora collegamenti".

Per le versioni di ASP.NET anteriori alla versione 4, il controllo esegue il rendering di un attributo disabled quando la proprietà IsEnabled è impostata su false. Vedere la nota 2.

SiteMapPath

Per fare sì che il controllo esegua il rendering di un collegamento per ignorare la navigazione, impostare la proprietà SkipLinkText del controllo su una stringa.

Nel file XML della mappa del sito impostare l'attributo description di ciascun nodo della mappa del sito per creare un titolo che le utilità di lettura dello schermo possano utilizzare per identificare i collegamenti di navigazione.

Per le versioni di ASP.NET anteriori alla versione 4, il controllo esegue il rendering di un attributo disabled quando la proprietà IsEnabled è impostata su false. Vedere la nota 2.

TreeView

Per fare sì che il controllo esegua il rendering di un collegamento per ignorare la navigazione, impostare la proprietà SkipLinkText del controllo.

Se si imposta la proprietà PopulateOnDemand di un nodo su true, il controllo si comporta in modo non conforme alle linee guida per l'accessibilità.

La proprietà Target viene rappresentata come attributo target. Vedere la nota 1.

Per le versioni di ASP.NET anteriori alla versione 4, il controllo esegue il rendering di un attributo disabled quando la proprietà IsEnabled è impostata su false. Vedere la nota 2.

Controlli della Casella degli strumenti di accesso

Controllo

Considerazioni sull'Accesso facilitato

ChangePassword

Il rendering del layout del controllo viene eseguito utilizzando una tabella HTML. Per la creazione di markup basato su CSS (Cascading Style Sheets) per il layout anziché una tabella, utilizzare le proprietà modello del controllo. Vedere la nota 3 e la nota 4.

Se si configura il controllo per l'utilizzo di immagini, impostare la proprietà del testo corrispondente sul testo alternativo appropriato. Ad esempio, se si imposta la proprietà ChangePasswordButtonType su Image, impostare la proprietà ChangePasswordButtonText sul valore del testo alternativo.

Se il controllo ChangePassword non viene personalizzato mediante l'utilizzo di modelli, la proprietà AccessKey del controllo ChangePassword verrà applicata alla prima casella di testo del controllo. Se invece il controllo ChangePassword viene personalizzato mediante l'utilizzo di modelli, la proprietà AccessKey verrà ignorata. In questo caso, impostare direttamente la proprietà AccessKey di ciascun controllo figlio del modello.

La proprietà TabIndex viene visualizzata in tutti i controlli TextBox nel controllo ChangePassword. Se invece il controllo ChangePassword viene personalizzato mediante l'utilizzo di modelli, la proprietà TabIndex verrà ignorata.

Per le versioni di ASP.NET anteriori alla versione 4, il controllo esegue il rendering di un attributo disabled quando la proprietà IsEnabled è impostata su false. Vedere la nota 2.

CreateUserWizard

Il rendering del layout del controllo viene eseguito utilizzando una tabella HTML. Vedere la nota 3. Per la creazione di markup basato su CSS (Cascading Style Sheets) per il layout anziché una tabella, utilizzare le proprietà modello del controllo.

Se si configura il controllo per l'utilizzo di immagini, impostare la proprietà del testo corrispondente sul testo alternativo appropriato. Ad esempio, se si imposta la proprietà CancelButtonType su Image, impostare la proprietà CancelButtonText su testo alternativo.

Login

Il rendering del layout del controllo viene eseguito utilizzando una tabella HTML. Per la creazione di markup basato su CSS (Cascading Style Sheets) per il layout anziché una tabella, utilizzare le proprietà modello del controllo. Vedere la nota 3 e la nota 4.

LoginName

Impostare la proprietà ToolTip su testo quale "Connesso come nome utente" in modo che le utilità di lettura dello schermo interpretino il testo del controllo correttamente.

Per le versioni di ASP.NET anteriori alla versione 4, il controllo esegue il rendering di un attributo disabled quando la proprietà IsEnabled è impostata su false. Vedere la nota 2.

LoginStatus

Per le versioni di ASP.NET anteriori alla versione 4, il controllo esegue il rendering di un attributo disabled quando la proprietà IsEnabled è impostata su false. Vedere la nota 2.

PasswordRecovery

Il rendering del layout del controllo viene eseguito utilizzando una tabella HTML. Per la creazione di markup basato su CSS (Cascading Style Sheets) per il layout anziché una tabella, utilizzare le proprietà modello del controllo. Vedere la nota 3 e la nota 4.

Se si imposta la proprietà SubmitButtonType su Image, il valore della proprietà SubmitButtonText viene utilizzato come testo alternativo.

Il controllo non esegue il rendering delle impostazioni dei tasti di scelta o degli indici di tabulazione.

Per le versioni di ASP.NET anteriori alla versione 4, il controllo esegue il rendering di un attributo disabled quando la proprietà IsEnabled è impostata su false. Vedere la nota 2.

Controlli Web part

Controllo

Considerazioni sull'Accesso facilitato

AppearanceEditorPart , BehaviorEditorPart, CatalogZone

Il controllo non genera elementi label per associare le etichette ai controlli.

Tutti i verbi generano lo stesso testo di collegamento.

È possibile eseguire il rendering del testo alternativo per i collegamenti, ma non è possibile personalizzarlo.

Il controllo non esegue il rendering delle impostazioni dei tasti di scelta o degli indici di tabulazione.

EditorZone

Quando sono visualizzate le icone, tutti i verbi visualizzano lo stesso testo alternativo.

Il controllo non esegue il rendering delle impostazioni dei tasti di scelta o degli indici di tabulazione.

Il controllo non genera elementi label per associare le etichette con i controlli.

È possibile eseguire il rendering del testo alternativo per i collegamenti, ma non è possibile personalizzarlo.

LayoutEditorPart

È necessario includere il controllo LayoutEditorPart con altri controlli Web part per rendere una pagina accessibile. Altrimenti gli utenti possono utilizzare solo il mouse per trascinare i controlli Web part.

Il controllo non genera elementi label per associare le etichette con i controlli.

Tutti i verbi generano lo stesso testo di collegamento.

È possibile eseguire il rendering del testo alternativo per i collegamenti, ma non è possibile personalizzarlo.

Il controllo non esegue il rendering delle impostazioni dei tasti di scelta o degli indici di tabulazione.

PageCatalogPart , PropertyGridEditorPart, WebPartZone

Il controllo non genera elementi label per associare le etichette con i controlli.

Tutti i verbi generano lo stesso testo di collegamento.

È possibile eseguire il rendering del testo alternativo per i collegamenti, ma non è possibile personalizzarlo.

Il controllo non esegue il rendering delle impostazioni dei tasti di scelta o degli indici di tabulazione.

Note

Nota 1   In XHTML 1.1 o HTML 4.0, l'attributo target non è supportato per gli elementi anchor.

Nota 2   In HTML 4.0 e XHTML 1.1, l'attributo disabled è supportato solo per gli elementi progettati per l'input dell'utente, ad esempio gli elementi input e textarea. Se l'attributo controlRenderingCompatibilityVersion dell'elemento pages nel file Web.config viene impostato su 3.5 e se la proprietà IsEnabled è false, alcuni controlli eseguono il rendering di un attributo disabled per elementi non progettati per l'input dell'utente. Per ulteriori informazioni, vedere WebControl.SupportsDisabledAttribute.

Nota 3   L'utilizzo di tabelle per impostare elementi visivi in una pagina non è semanticamente corretto e potrebbe non essere conforme ad alcune linee guida per l'accessibilità. Per ulteriori informazioni, vedere Accessibilità in Visual Studio e ASP.NET.

Nota 4   Anche se il controllo è stato personalizzato con i modelli, il markup di cui è stato eseguito il rendering è incluso in una tabella HTML. Per impedire l'esecuzione del rendering di questo elemento table, impostare la proprietà RenderOuterTable su false. In questo caso non è possibile impostare proprietà di stile quale ForeColor.

Nota 5   L'attributo alt per gli elementi img dovrebbe descrivere il contenuto dell'immagine, a meno che l'immagine non sia destinata solo a scopi decorativi. Per le immagini decorative, l'attributo alt deve essere impostato su una stringa vuota (""). Per ulteriori informazioni, vedere Accessibilità in Visual Studio e ASP.NET.

Vedere anche

Concetti