Condividi tramite


Controlli ASP.NET e accesso facilitato

Aggiornamento: novembre 2007

ASP.NET consente di creare pagine Web conformi alle linee guida per l'accesso facilitato. Per informazioni dettagliate, vedere Supporto per l'accesso facilitato in ASP.NET.

Per creare applicazioni Web accessibili in ASP.NET, è necessario capire come i controlli server ASP.NET supportano l'accesso facilitato. In molti casi è necessario configurare un controllo per creare un markup conforme alle linee guida per l'accesso facilitato. In alcuni casi i controlli server ASP.NET non possono essere utilizzati nelle applicazioni che devono essere completamente conformi alle linee guida WCAG 1.0 (Web Content Accessibility Guidelines), priorità 1. In questi casi è necessario evitare di usare i controlli.

Linee guida per l'accesso facilitato dei controlli ASP.NET

Nella tabella seguente sono elencati i controlli server ASP.NET e vengono fornite le informazioni sul supporto dell'accesso facilitato del controllo. Se un controllo non è elencato nella tabella, l'output è conforme alle linee guida per l'accesso facilitato senza alcun requisito di configurazione.

Controllo

Supporto dell'accesso facilitato

AppearanceEditorPart

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 richiede script client per funzionare.

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

BehaviorEditorPart

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 richiede script client per funzionare.

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

BulletedList

Se la proprietà DisplayMode del controllo è impostata su LinkButton, il controllo richiede script client per funzionare. Per eliminare la necessità di script client, creare dei modelli e aggiungere i controlli Button per queste funzioni.

Se la proprietà BulletStyle del controllo è impostata su CustomImage, assicurarsi che la grafica non contenga un significato che risulterà invisibile agli utenti che non possono visualizzare la grafica.

Se si imposta la proprietà Target per i collegamenti, viene aperta una nuova finestra. Questa operazione non è consigliata nelle linee guida per l'accesso facilitato.

Button

Se si imposta la proprietà OnClientClick, il pulsante dipende dagli script client.

Calendar

Il controllo non esegue il rendering di un header nelle colonne, ma esegue il rendering degli elementi th con uno scope per l'intestazione.

Il rendering del layout del controllo viene eseguito mediante una tabella HTML. Questa operazione non è consigliata in alcune linee guida. Impostare le proprietà Caption e CaptionAlign del controllo per eseguire il rendering di una didascalia per la tabella, come consigliato nelle linee guida per l'accesso facilitato.

Il controllo esegue il rendering dei controlli LinkButton per lo spostamento, che richiedono script client per funzionare. Per eliminare la necessità di script client, creare dei modelli e aggiungere i controlli Button per queste funzioni.

CatalogZone

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 richiede script client per funzionare.

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

ChangePassword

Il controllo richiede script client per funzionare.

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 su testo alternativo.

CheckBox

Se si imposta la proprietà AutoPostBack su true, il controllo richiede script client.

CheckBoxList

Se si imposta la proprietà AutoPostBack su true, il controllo richiede script client.

CreateUserWizard

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.

I pulsanti nel controllo, ad esempio il pulsante Submit e i collegamenti per passare da un punto all'altro, richiedono script client.

DataPager

Se la proprietà QueryStringField non è impostata e si utilizzano oggetti NumericPagerField o NextPreviousPagerField, il controllo DataPager richiede script client. 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

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 dell'oggetto come testo alternativo.

Il rendering del layout del controllo viene eseguito mediante una tabella HTML. Questa operazione non è consigliata in alcune linee guida perché esclude le informazioni delle intestazioni della tabella.

Se si attiva 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. Usare invece la proprietà PagerTemplate in modo da potere definire esattamente ciò che cosa visualizza il componente di spostamento.

Per impostazione predefinita questo controllo utilizza i controlli LinkButton, che richiedono script client per funzioni quali il passaggio alla modalità di modifica, il paging e così via. Per eliminare la necessità di script client, creare dei modelli e aggiungere i controlli Button per queste funzioni.

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 e associarli manualmente. Impostare le proprietà Caption e CaptionAlign del controllo per eseguire il rendering di una didascalia per la tabella, come consigliato nelle linee guida per l'accesso facilitato.

DropDownList

Il controllo non supporta l'elemento ListItemGroup consigliato per consentire la suddivisione dell'elenco in sezioni.

Se si imposta la proprietà AutoPostBack su true, il controllo richiede script client.

EditorZone

Tutti i verbi visualizzano lo stesso testo alternativo quando sono visualizzate le icone.

Il controllo richiede script client per funzionare.

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.

FormView

Il rendering del layout del controllo viene eseguito mediante una tabella HTML. Questa operazione non è consigliata in alcune linee guida perché esclude le informazioni delle intestazioni della tabella.

Per impostazione predefinita il controllo utilizza i controlli LinkButton, che richiedono script client per funzioni quali il passaggio alla modalità di modifica, il paging e così via. Per eliminare la necessità di script client, utilizzare la proprietà PagerTemplate e aggiungere i controlli Button per queste funzioni.

Impostare le proprietà Caption e CaptionAlign del controllo per eseguire il rendering di una didascalia per la tabella, come consigliato nelle linee guida per l'accesso facilitato.

GridView

Impostare la proprietà RowHeaderColumn sul nome di un campo di dati e la proprietà UseAccessibleHeader su true per fare sì che il controllo esegua il rendering di informazioni delle intestazioni della tabella conformi alle linee guida per l'accesso facilitato.

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.

Impostare le proprietà Caption e CaptionAlign del controllo per eseguire il rendering di una didascalia per la tabella, come consigliato nelle linee guida per l'accesso facilitato.

Per impostazione predefinita il controllo utilizza i controlli LinkButton, che richiedono script client per funzioni quali il passaggio alla modalità di modifica, il paging e così via. Per eliminare la necessità di script client, creare dei modelli e aggiungere i controlli Button per queste funzioni.

Se si attiva 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. Usare invece la proprietà PagerTemplate in modo da potere definire esattamente ciò che cosa visualizza il componente di spostamento.

I controlli predefiniti utilizzati per implementare la modifica, la selezione, il paging e altre funzioni di aggiornamento richiedono script client. Per evitare ciò, creare delle colonne modello e aggiungere i controlli Button manualmente.

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 delle colonne modello, aggiungere i controlli Label e TextBox e associarli manualmente.

Se si attiva l'ordinamento, i collegamenti nelle intestazioni delle colonne sono controlli LinkButton e richiedono script client per funzionare. Per eliminare la necessità di script client, creare dei modelli e aggiungere i controlli Button per queste funzioni.

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.

Se si imposta la proprietà Target per i collegamenti, viene aperta una nuova finestra. Questa operazione non è consigliata nelle linee guida per l'accesso facilitato.

Image

Per impostazione predefinita il controllo non esegue il rendering di alcun testo alternativo. Impostare la proprietà AlternateText. Se la grafica non ha alcuno scopo funzionale, impostare la proprietà GenerateEmptyAlternateText su true per eseguire il rendering di un alt impostato su una stringa vuota (""), che fa sì che le utilità di lettura dello schermo ignorino la grafica.

ImageButton

Il controllo richiede script client per funzionare.

Per impostazione predefinita il controllo non esegue il rendering di alcun testo alternativo. Impostare la proprietà AlternateText.

Non utilizzare il controllo ImageButton come mappa immagine perché non supporta le regioni con testo alternativo. Usare invece il controllo ImageMap.

ImageMap

Per impostazione predefinita il controllo non esegue il rendering di alcun testo alternativo. Impostare la proprietà AlternateText.

Se si imposta la proprietà HotSpotMode del controllo o delle singole aree sensibili su PostBack, il controllo richiede script client per funzionare.

Se si imposta la proprietà Target per i collegamenti, viene aperta una nuova finestra. Questa operazione non è consigliata nelle linee guida per l'accesso facilitato.

Label

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

LayoutEditorPart

Includere sempre 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 richiede script client per funzionare.

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

LinkButton

Il controllo richiede script client per funzionare.

Non impostare la proprietà Text di più controlli LinkButton sulla stessa stringa, perché gli utenti che utilizzano le utilità di lettura dello schermo non saranno in grado di distinguere i pulsanti.

ListBox

Il controllo non supporta l'elemento ListItemGroup consigliato per consentire la suddivisione dell'elenco in sezioni.

Se si imposta la proprietà AutoPostBack su true, il controllo richiede script client.

Login

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

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

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.

LoginStatus

Poiché il controllo utilizza un controllo LinkButton per visualizzare il collegamento Logout, richiede script client per funzionare. Per eliminare la necessità di script client, creare dei modelli e aggiungere i controlli Button per queste funzioni.

Menu

Impostare la proprietà SkipLinkText del controllo su una stringa per fare sì che il controllo esegua il rendering del collegamento di omissione dello spostamento consigliato.

Il controllo richiede script client per funzionare.

Nei browser che non supportano la funzionalità client completa del controllo, il browser aggiorna la finestra per visualizzare lo spostamento secondario. In seguito a ciò le utilità di lettura dello schermo potrebbero iniziare a leggere di nuovo la pagina.

Se si imposta la proprietà Target per i collegamenti, viene aperta una nuova finestra. Questa operazione non è consigliata nelle linee guida per l'accesso facilitato.

Il rendering del layout del controllo viene eseguito mediante una tabella HTML. Questa operazione non è consigliata in alcune linee guida.

Nelle linee guida per l'accesso facilitato non si consiglia di configurare il controllo in modo da creare effetti collaterali per il puntatore del mouse (ad esempio, la creazione di menu di scelta rapida).

PageCatalogPart

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 richiede script client per funzionare.

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

PasswordRecovery

Se la proprietà ClientTarget della pagina è impostata su Downlevel, il controllo richiede script client per funzionare.

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.

PropertyGridEditorPart

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 richiede script client per funzionare.

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

RadioButton

Se si imposta la proprietà AutoPostBack su true, il controllo richiede script client.

RadioButtonList

Se si imposta la proprietà AutoPostBack su true, il controllo richiede script client.

SiteMapPath

Impostare la proprietà SkipLinkText del controllo su una stringa per fare sì che il controllo esegua il rendering del collegamento di omissione dello spostamento consigliato.

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

Table, TableRow, TableCell, TableHeaderCell, TableHeaderRow e TableFooterRow

Impostare le proprietà Caption e CaptionAlign del controllo per eseguire il rendering di una didascalia per la tabella, come consigliato nelle linee guida per l'accesso facilitato.

Quando si crea un oggetto Table, includere i controlli TableHeaderRow e TableHeaderCell.

Nei controlli TableHeaderRow, Table e TableFooterRow impostare la proprietà TableSection su TableBody, TableHeader o TableFooter. Il controllo esegue così il rendering, rispettivamente, 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.

TextBox

Se si imposta la proprietà AutoPostBack su true, il controllo richiede script client.

TreeView

Impostare la proprietà SkipLinkText del controllo su una stringa per fare sì che il controllo esegua il rendering del collegamento di omissione dello spostamento consigliato.

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

Il controllo richiede script client per funzionare.

Se si imposta la proprietà Target su _blank per il controllo TreeView o per i singoli nodi, il controllo apre una nuova finestra. Questa operazione non è consigliata nelle linee guida per l'accesso facilitato.

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 richiede script client per funzionare.

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

Se si imposta la proprietà HelpMode su Modal o Modeless, il controllo apre una nuova finestra. Questa operazione non è consigliata nelle linee guida per l'accesso facilitato.

Wizard

Il controllo esegue il rendering dei controlli LinkButton per lo spostamento, che richiedono script client per funzionare. Per eliminare la necessità di script client, creare dei modelli e aggiungere i controlli Button per queste funzioni.

Controlli di convalida

Per impostazione predefinita i controlli di convalida eseguono il rendering di script client per eseguire la convalida client. Tuttavia, poiché i controlli di convalida incorporati (eccetto il controllo CustomValidator) eseguono automaticamente una verifica della convalida ridondante nel codice server, è possibile impostare la proprietà EnableClientScript su false per evitare il rendering di script client per i controlli di convalida.

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

Vedere anche

Concetti

Supporto per l'accesso facilitato in ASP.NET