ASP.NET allows you to create Web pages that conform to accessibility guidelines. For details, see Accessibility Support in ASP.NET.
To create accessible Web applications in ASP.NET, you must understand how ASP.NET server controls support accessibility. In many cases, you must configure a control to create markup that conforms to accessibility guidelines. In a few cases, ASP.NET server controls cannot be used in applications that must be 100 percent conformant with Web Content Accessibility Guidelines 1.0 (WCAG) priority 1 guidelines. In those cases, you must avoid using the controls.
ASP.NET Control Guidelines for Accessibility
The following table lists ASP.NET server controls and provides information about accessibility support for the control. If a control is not listed in the table, its output conforms to accessibility guidelines without any configuration requirements.
Control | Accessibility support |
---|---|
|
The control does not generate label elements to associate labels with controls. All verbs generate the same link text. Alternate text for links is rendered but is not customizable. The control requires client script to function. The control does not render access key or tab index settings. |
|
The control does not generate label elements to associate labels with controls. All verbs generate the same link text. Alternate text for links is rendered but is not customizable. The control requires client script to function. The control does not render access key or tab index settings. |
|
If the control's When the control's Setting the |
Button |
Setting the |
|
The control does not render a header in columns but does render th elements with a scope for the heading. The control layout is rendered using an HTML table, which is not recommended by some guidelines. Set the control's The control renders |
|
The control does not generate label elements to associate labels with controls. All verbs generate the same link text. Alternate text for links is rendered but is not customizable. The control requires client script to function. The control does not render access key or tab index settings. |
|
The control requires client script to function. If you configure the control to use images, set the corresponding text property to the appropriate alternate text. For example, if you set the |
|
Setting the |
|
Setting the |
|
If you configure the control to use images, set the corresponding text property to appropriate alternate text. For example, if you set the Buttons in the control, such as the Submit button and links to move between steps, require client script. |
|
If you create a The control layout is rendered using an HTML table, which is not recommended by some guidelines because it does not include table header information. If you enable paging and you set the By default, this control uses LinkButton controls, which require client script for functions such as switching to edit mode, paging, and so on. To avoid the need for client script, create templates and add Button controls for these functions. Text boxes generated automatically when you set the control's |
|
The control does not support the recommended ListItemGroup to allow the list to be subdivided into sections. Setting the AutoPostBack property to true causes the control to require client script. |
|
All verbs display the same alternate text when icons are displayed. The control requires client script to function. The control does not render access key or tab index settings. The control does not generate label elements to associate labels with controls. Alternate text for links is rendered but is not customizable. |
|
The control layout is rendered using an HTML table, which is not recommended by some guidelines because it does not include table header information. By default, the control uses LinkButton controls, which require client script, for functions, such as switching to edit mode, paging, and so on. To avoid the need for client script, use the Set the control's |
|
Set the If you create a ButtonField object and specify an image for the button, you cannot explicitly specify alternate text for the image. The image uses the object's Text property as the alternate text. Set the control's Caption and CaptionAlign properties to render a caption for the table, as recommended in accessibility guidelines. By default, the control uses LinkButton controls, which require client script, for functions, such as switching to edit mode, paging, and so on. To avoid the need for client script, create templates and add Button controls for these functions. If you enable paging and set the NextPageImageUrl and PreviousPageImageUrl properties, you cannot explicitly set the alternate text for the images used as paging buttons. Instead, use the The default controls used to implement editing, selecting, paging, and other update functions require client script. To avoid this, create template columns and add Button controls manually. Text boxes generated automatically when you set the control's If you enable sorting, the links in the column headers are LinkButton controls and require client script to function. To avoid the need for client script, create templates and add Button controls for these functions. |
|
If you set the Setting the |
|
By default, the control renders no alternate text. Set the |
|
The control requires client script to function. By default, the control renders no alternate text. Set the AlternateText property. Do not use the ImageButton control as an image map, because it does not support regions with their own alternate text. Use the |
ImageMap |
By default, the control renders no alternate text. Set the AlternateText property. If you set the Setting the |
Label |
To use the control to render a label for a text box or other control, set the |
|
Always include the LayoutEditorPart control with other Web Parts controls to make a page accessible. Otherwise, users can only use a mouse to drag Web Parts controls. The control does not generate label elements to associate labels with controls. All verbs generate the same link text. Alternate text for links is rendered but is not customizable. The control requires client script to function. The control does not render access key or tab index settings. |
LinkButton |
The control requires client script to function. Do not set the |
|
The control does not support the recommended ListItemGroup to allow the list to be subdivided into sections. Setting the AutoPostBack property to true causes the control to require client script. |
|
When the The control does not render access key or tab index settings. |
|
Set the ToolTip property to text such as Logged in as username so that screen readers will interpret the control's text correctly. |
|
The control uses a LinkButton control to display the Logout link, and therefore requires client script to function. To avoid the need for client script, create templates and add Button controls for these functions. |
|
Set the control's The control requires client script to function. In browsers that do not support the full client-side functionality of the control, the browser will refresh the window to show the secondary navigation, which might cause screen readers to begin reading the page again. Setting the The control layout is rendered using an HTML table, which is not recommended by some guidelines. Configuring the control to have mouse pointer side effects (such as creating shortcut menus) is not recommended by accessibility guidelines. |
|
The control does not generate label elements to associate labels with controls. All verbs generate the same link text. Alternate text for links is rendered but is not customizable. The control requires client script to function. The control does not render access key or tab index settings. |
|
If the page's When the The control does not render access key or tab index settings. |
|
The control does not generate label elements to associate labels with controls. All verbs generate the same link text. Alternate text for links is rendered but is not customizable. The control requires client script to function. The control does not render access key or tab index settings. |
|
Setting the AutoPostBack property to true causes the control to require client script. |
|
Setting the AutoPostBack property to true causes the control to require client script. |
|
Set the control's SkipLinkText property to a string to have the control render the recommended skip navigation link. In the site map XML file, set the description attribute of each site-map node to provide a title that screen readers can use to identify navigation links. |
|
Set the control's When creating a Table object, include the TableHeaderRow and TableHeaderCell controls. In the TableHeaderRow, Table, and TableFooterRow controls, set the In TableCell controls, set the Set the control's |
TextBox |
Setting the |
|
Set the control's SkipLinkText property to a string to have the control render the recommended skip navigation link. Setting a node's The control requires client script to function. Setting the |
|
The control does not generate label elements to associate labels with controls. All verbs generate the same link text. Alternate text for links is rendered but is not customizable. The control requires client script to function. The control does not render access key or tab index settings. If you set the |
|
The control renders LinkButton controls for navigation, which require client script to function. To avoid the need for client script, create templates and add Button controls for these functions. |
Validator controls |
By default, validation controls render client script to perform client-side validation. However, because built-in validator controls (except the Set the |