User Assistance and Accessibility...
This article shall examine what is involved with implementing online user assistance and implementing accessibility features, somewhat initially opaque objectives. Both are concerned with usability of web applications - providing an interface that makes it as easy as possible for a user to achieve the tasks the application functionality facilitates.
Two of the objectives of .NET certification exam 70-305 Developing and Implementing Web Applications with Visual Basic .NET and Visual Studio .NET are:
which come under the general heading of Creating User Services.
This article shall examine what is involved with these somewhat initially opaque objectives. Both are concerned with usability of web applications – providing an interface that makes it as easy as possible for a user to achieve the tasks the application functionality facilitates. There are several strands to usability but these two objectives focus on two areas: providing help to users to guide them through the possibly complex application and ensuring that people with disabilities can use (access) your application.
While there are accepted standards for providing help to users of desktop applications there is no such standard for web sites and applications. Options you may choose to implement include providing help in a separate browser window or embedding help within the application itself. For example you might implement a help link that displays a hidden label control within the page populated by additional information. Or to avoid the server postback you might opt for a DHTML solution.
Such features would be in addition to any guidance information available as part of your application interface. In actual fact the quality of a user assistance solution is as much about the quality and relevancy of information you present than the mechanism with which you choose to deliver it.
Although Microsoft does not offer a standard browser-based help solution several companies do: these might be appropriate options for consideration if you do not want to implement a bespoke solution.
Finally, in this short consideration we are focussing on end user help delivered as part of the application. There are other forms of user assistance:
There are strong ethical, economic and legal arguments for ensuring your software is accessible to individuals with disabilities. There are 5 main principles of accessible design:
In fact Microsoft has made accessibility key to attaining 'Windows logo certification'. Their implementation of the above principles in this regard includes:
To address web sites and applications more specifically below are some further guidelines:
ALT text
Every non-text element should have an alternative textual representation specified and this text should convey
the most important information concerning the element. This text may be used by screen reader software.
Link text
Link text should be useful in isolation. E.g. 'click here' should not be used for link text as in 'click here'
for further information. Consider using the title attribute of the link to provide a more descriptive string.
Imagemaps
Do not depend on image maps for navigation; include a set of links for those who cannot use the images.
Keyboard navigation
The tab key will move between all links and imagemap areas in the order they are defined in HTML. Use the TABINDEX
attribute where appropriate to override this.
Access Keys
All controls and links that act as controls should have an ACCESSKEY attribute. Underline the access key in the
control's label.
Control identification
Use the TITLE attribute or LABEL tags to associate a name with every control.
Frames
Provide alternative pages that do not use frames.
Support formatting options
Do not assume that text will be in a specific font, colour or size – breaking of this assumption can severely
compromise the appearance of your pages. Do not explicitly format text, e.g. use relative fonts sizes rather than
specific. This will inconvenience users who have changed the standard browser font sizes.
Style sheets
Make sure your site will work even if the style sheet is turned off. If it doesn't, offer alternative pages that
will work without a style sheet.
Audio and Video
Provide captions and / or transcripts for audio and video content.
There are other accessibility standards, for example notably W3C standards, as follows.
The World Wide Web consortium (W3C) is the body that governs web standards and they have plenty to say on the topic of accessibility – see http://www.w3.org/wai/. If interested in exploring accessibility issues this is an excellent place to start. Among their many recommendations are guidelines deemed 'priority 1' which the W3C suggest are mandatory requirements. These are summarised below. Note that I have omitted any items overlapping significantly with the previous recommendations except where important new information is introduced.
There is a further set of standards, termed Section 508 standards, that are required by law for federal web sites in the US. I shan't enter into details here (partly as I'm sitting in the UK!) but you may want to undertake a quick search on Google if interested. The standards are based largely on the W3C guidelines.
You may also be interested in an automated tool (called Bobby) that will validate your pages against W3C and section 508 standards – see http://bobby.cast.org.
Apart from using Bobby or devising complex test plans involving disabled users and their computing equipment here are a few simpler tests you may like to perform.
Let's look at just a few simple ways we can implement some of the recommendations above.
Create a web form and add some ASP.NET web server controls to it; specify text for the tooltip property of each control. For example:
|
<%@ Page Language="VB" %> <script runat="server"> ' Insert page code here ' </script> <html> <head> </head> <body> <form runat="server"> <p> <asp:TextBox id="TextBox1" runat="server" ToolTip="Enter your data here"></asp:TextBox> </p> <p> <asp:Image id="Image1" runat="server" ToolTip="This is a broken image"></asp:Image> </p> <!-- Insert content here --> </form> </body> </html> |
Browse the web form and see what happens when you hover over the rendered control. Look at the HTML for the page; for the above this is:
|
<html> <head> </head> <body> <form name="_ctl0" method="post" action="tooltip.aspx" id="_ctl0"> <input type="hidden" name="__VIEWSTATE" value="dDwtMTQzNDk5NjM0NTs7PvayTq0fkTGBj/Fq6Pxlca+DLJHA" /> <p> <input name="TextBox1" type="text" id="TextBox1" title="Enter your data here" /> </p> <p> <img id="Image1" title="This is a broken image" border="0" /> </p> <!-- Insert content here --> </form> </body> </html> |
You can see from the above that the ToolTips are rendered as HTML titles.
Somewhat similar is the use of ALT tags with images within your HTML code. Further the AlternateText property of the ASP.NET image web server control (and related controls) renders as an HTML ALT tag.
Create a web form and add an HTML table to it. Typically, you will enter something similar to:
|
<%@ Page Language="VB" %> <script runat="server"> ' Insert page code here ' </script> <html> <head> </head> <body> <table width="400" border="1"> <tbody> <tr> <td> </td> <td> Column Heading1</td> <td> Column Heading2</td> </tr> <tr> <td> Row Title1</td> <td> Item 1-1</td> <td> Item 1-2</td> </tr> <tr> <td> Row Title2</td> <td> Item 2-1</td> <td> Item 2-2</td> </tr> </tbody> </table> </body> </html> |
This is also similar to the code that will be generated if you let VS.Net generate the HTML for you.
However, you can make this code more accessible by amending it to the following:
|
<%@ Page Language="VB" %> <script runat="server"> ' Insert page code here ' </script> <html> <head> </head> <body> <table width="400" border="1"> <tbody> <tr> <th> </th> <th scope="col"> Column Heading1</td> <th scope="col"> Column Heading2</td> </tr> <tr> <td scope="row"> Row Title1</td> <td> Item 1-1</td> <td> Item 1-2</td> </tr> <tr> <td scope="row"> Row Title2</td> <td> Item 2-1</td> <td> Item 2-2</td> </tr> </tbody> </table> </body> </html> |
What makes this implementation more accessible? Using the <th> tag for the table header row explicitly indicates that it is such which accessibility software may process. Additionally, a specific CSS style may be applied to the <th> tag to display such rows prominently as required. Further, the scope attribute associates row and column headers explicitly with data in the rows and columns. Again accessibility software such as screen readers can use this additional information to the benefit of the end user.
One of my pet hates when it comes to web sites is the tendency that graphic / web designers have of getting carried away with the aesthetic impact of their sites to the detriment of usability and accessibility. This can manifest itself in many ways including:
As a consequence of 2 often the text font size will be set to a specific small size thus alienating the x% of the user population who cannot view the text (a higher percentage than you might think) and further meaning they cannot change the size via the client web browsers inbuilt facilities.
Of course it is not just graphic / web designers who are at fault. Web developers as well do not pay sufficient respect to the usability and accessibility of the code their applications generate. They need to for several reasons, including possible future legal necessity.
Developing and implementing web applications with VB.Net and VS.Net
Mike Gunderloy
Que