Skip to main content

Configuring Accessibility in ASP.NET



Configuring Accessibility

For example, many a user does not use a conventional mouse, and other users use screen readers to read the text on Web sites, rather than displaying it on a monitor.
Public Accessibility Guidelines:
W3C WCAG standard and US Government’s Section 508 Rehabilitation Act.

How ASP.NET Controls Support Accessibility
For example, login controls such as Login, ChangePassword, PasswordRecovery, and CreateUserWizard use text boxes with associated labels to help a user who uses a screen reader or who does not use a mouse.

Another way some ASP.NET controls support accessibility is by allowing users to skip link text. Screen readers typically read the text of links from the top to the bottom of a page, enabling users to choose a specific link. ASP.NET controls that include navigation links provide the SkipLinkText property, which is enabled by default and allows users to skip past the link text. The CreateUserWizard, Menu, SiteMapPath, TreeView, and Wizard controls each support skipping links.

<a href="#Menu1_SkipLink">
<img alt="Skip Navigation Links" src="/WebResource.axd?d=_9Q2Lm" width="0" height="0" />
</a>
… menu links …
<a id="Menu1_SkipLink"></a>

The simplest way to follow this best practice is to use one of the ASP.NET controls that provide the SkipLinkText property.

Improving Visual Accessibility:
  1. Describe every image by providing alt text using the AlternateText property
You can also set the Image.DescriptionUrl property to specify an HTML page that further describes an image. If an image is not important, set the GenerateEmptyAlternateText property to True to cause screen readers to ignore it.
  1. Use solid colors for background and use contrasting colors for text
  2. Create a flexible page layout that scales correctly when text size is increased
  3. Set the Table.Caption property to a description of the table:
Whether he or she wants to hear the contents of the table or skip past it.
  1. Provide a way to identify column headers
Table t = new Table();
TableHeaderRow tr = new TableHeaderRow(); t.Rows.Add(tr);
tr.TableSection = TableRowSection.TableHeader; //TableFooter, TableBody
TableHeaderCell tc = new TableHeaderCell(); tr.Cells.Add(tc);
tc.AssociatedHeaderCellID = new string[] { "Column1" };
tc.Scope = TableHeaderScope.Column;
         
The Calendar, DetailsView, FormView, and GridView ASP.NET server controls render HTML tables with these features.
  1. Avoid defining specific font sizes
Use heading tags (such as <H1> or <H3>) instead of font sizes to support the user’s formatting options.
  1. Avoid requiring client scripts
  2. Assistive technologies often cannot render client scripts, so you should use client script only for nonessential effects, such as mouse rollovers.
WCAG standards do not allow controls that require client scripts, so if you must comply with these standards, you should also avoid using the LinkButton, ImageButton, and Calendar controls.

Popular posts from this blog

Culture Information and Localization in .NET

Namespace: System.Globalization CultureInfo Class:                 It provides information like the Format of numbers and dates, Culture’s Calendar, Culture’s language and sublanguage (if applicable), Country and region of the culture. The Basic use of CultureInfo class is shown here: • How string Comparisons are performed • How Number Comparison & Formats are performed • Date Comparison and Formats. • How resources are retrieved and used. Cultures are grouped into three categories: Invariant Culture : It’s Culture Insensitive. It can be used to build some trial application. It can be also used to build an application with hard-coded expiry date that ignores cultures. But using it for every comparison will be incorrect and inappropriate. Neutral Culture : English(en), Frensh(fr), and Spanish(sp). A neutral culture is related to language but it’s not related to specific regi...

Concept of App Domain in .Net

Creating Application Domains: Application domain is just like process, provides separate memory space, and isolates from other code. But it’s quite light weight. It also provides the following advantages: 1-       Reliability : If a domain crashes, it can be unloaded. Hence doesn’t affect the other assemblies. 2-       Efficiency : Loading all assemblies in one domain can be cumbersome and can make the process heavy but Appdomains are efficient in this manner. Important properties of AppDomain: ApplicationIdentity , ApplicationTrust , BaseDirectory , CurrentDomain , DomainManager , DomainDirectory , Evidence , FriendlyName , ID , RelativeSearchPath , SetupInformation , ShadowCopyFiles . Important methods of AppDomain: ApplyPolicy , CreateCOMInstanceFrom , CreateDomain , CreateInstance (Assembly). To create an AppDomain: AppDomain adomain = AppDomain.CreateDomain(“D”); To execute an assembly:...

ASP.NET Working With Data-Bound Web Server Controls

Suppose we have: List<Car> vCars = new List<Car>(); There are three types of databound controls: Simple databound controls(List, AdRotater), Composite data bound controls(GridView, DetailsView, FormView that inherit from CompositeDataBoundControl), and Hierarchal data bound controls (TreeView, Menu).   DataBoundControl has a DataBind method that can be used when data is ready. It calls DataBind for child controls as well. Page.DataBind() will call DataBind for all child controls. Using DataSource Objects:                                       BaseDataBound control exposes DataSource property that accepts objects that implement IEnumerable , IListSource , IDataSource , or IHierarchalDataSource . DataSourceID accepts ID of SqlDataSource . If both specified Data...