Universal Design iconAccessibility Example: The CourseInfo Gateway


We took the original CourseInfo Gateway and made an accessible version by implementing the following changes:

  1. Remove unnecessary frames.
  2. Make sure that all images have alt text, including those in the image map.
  3. Associate a label with text input control.
  4. Remove unnecessary layout tables.
  5. Control fonts, colors, etc. using style sheets.

All example code is marked to show changes. Anything that was removed from the original code is shown in red text with a line through it. Anything that was added to create the accessible code is shown in bold, green text.

Remove unnecessary frames

If you open the source code for the original page, you will see that it is actually made up of two frames. If you open the source of the first frame, title.html, you will see that it is simply a blank document. The source of the second frame, bin/gateway.pl, looks just like the original page. So what is the difference between the original page, which contains two frames, and the second frame, which contains all of the content?

Follow the link to the Blackboard home located at the bottom of the original page. Then look at the top of your browser. It still gives your current location as http://edtech2.scale.uiuc.edu, the CourseInfo Gateway. This is because you have changed the source of just the second frame. The first, empty, frame is still there, but you can't see it.

Now open just the second frame, and follow the link to the Blackboard home located at the bottom of the page. Look at the top of your browser again. It should list your current location as http://company.blackboard.com/, the Blackboard home page.

There is no difference between the two scenarios descibed above in terms of visually available page content. However, the second scenario makes more sense. You expect your browser to recognize the page you are currently seeing.

There is another problem with the use of frames on this page. If a user is accessing the page through a browser that does not support frames, she will see only the text: "Courses by CourseInfo v3.0 are best viewed with Netscape Navigator or Microsoft Internet Explorer. Please download one in order to continue." This does not help the visually impaired user who must use a special web browser, or the dedicated Unix user who prefers to view everything on Lynx. In fact, given that the frames serve no particular purpose on this page, users are being excluded for no reason.

There are ways to provide alternative access to frames, but in this case we chose simply to eliminate frames altogether, using the source code from the second frame as our starting point.

Add alt text

You may want to read more about alt text and why it is necessary before reading this section.

The Blackboard logo across the top of the page had appropriate alt text. We added alt text to the Submit button and Blackboard logo, as well as the image map.

In the original page, there was a single line of alt text replacing the entire image map. This means that someone viewing the page without images would not be able to identify the individual elements in the image map. We removed this alt text and added alt text to each element of the image map in the image map definition.

Original image map definition:

<MAP NAME="bb_gatewaymap">
<AREA SHAPE="RECT" COORDS="2,3,144,15" HREF="http://www.blackboard.com/company">
<AREA SHAPE="RECT" COORDS="338,1,404,15" HREF="/">
<AREA SHAPE="RECT" COORDS="600,3,698,15" HREF="http://support.blackboard.net">
</MAP>

Accessible image map definition:

<MAP NAME="bb_gatewaymap">
<AREA SHAPE="RECT" COORDS="2,3,144,15" HREF="http://www.blackboard.com/company" ALT="Blackboard Homepage">
<AREA SHAPE="RECT" COORDS="338,1,404,15" HREF="/" ALT="Top Level">
<AREA SHAPE="RECT" COORDS="600,3,698,15" HREF="http://support.blackboard.net" ALT="Online Support">
</MAP>

Original image map implementation:

<img ALT="[ Blackboard CourseInfo Gateway]" SRC='/common/images/categorized_gateway_navigation.gif' border='0' USEMAP='#bb_gatewaymap'>

Accessible image map implementation:

<IMG SRC="/common/images/categorized_gateway_navigation.gif" BORDER="0" USEMAP="#bb_gatewaymap">

Remove unnecessary layout tables

You may want to read more about layout tables and why they should be avoided before reading this section.

Most of the original page layout was accomplished using tables. There were a total of five layout tables on the page. The accessible version uses only one layout table, to arrange the links in the central portion of the page. The other tables were eliminated and their effects, mainly centering, recreated using style sheets.

Original page bottom, using layout table:

<TABLE ALIGN="center" WIDTH="600" BORDER="0">
<TR>
<TD>
<HR> </TD>
</TR>
<TR> <TD ALIGN="center">
<A HREF="http://www.blackboard.com/company"> <IMG BORDER="0" SRC="/common/images/powered_by_bb.gif"> </A><BR> <FONT FACE="arial,helv" SIZE="-2">Copyright &copy; 1999, Blackboard Inc. </FONT> </TD>
</TR>
</TABLE>

Style sheet definitions:

.centered {text-align:center;}
.teensy {font-size:60%;}
HR.narrow {width:70%; align:center;}

Accessible page bottom, implementing style sheets:

<HR CLASS="narrow">
<P CLASS="centered">
<A HREF="http://www.blackboard.com/company"><IMG BORDER="0" SRC="/common/images/powered_by_bb.gif" ALT="Blackboard Homepage" ></A><BR>
<SPAN CLASS="teensy"> Copyright &copy; 1999, Blackboard Inc. </SPAN>
</P>

Associate a label with text input control

You may want to read the full W3C Web Content Accessibility guidelines and on explicity associated labels and implicity associated labels before reading this section.

The text input box on this page does not have an explicitly associated label, defined using the HTML LABEL tag. It does have an implicitly associated label: the text underneath the input box. However, since this label is after the text input box, users of text-only browsers will see the input box without knowing what they should type in it. To correct these problems, we replaced the implicit label with an explicit label, and moved it in front of the text input.

Original form:

<FORM ACTION="/bin/gateway.pl" METHOD="POST">
<TABLE ALIGN="center" BORDER="0" WIDTH="600" CELLSPACING="0" CELLPADDING="0">
<TR>
<TD ALIGN="center"><FONT SIZE="2">
<INPUT TYPE="text" SIZE="25" NAME="searchstring"><INPUT TYPE="image" SRC="/common/images/categorized_gateway_search.gif"> </FONT></TD>
</TR>
<TR>
<TD ALIGN="center"> <FONT SIZE="-2" FACE="arial,helv">
Search for a Course Name, ID, or Description</FONT></TD>
</TR>
</TABLE>

</FORM>

Accessible form:

<FORM ACTION="/bin/gateway.pl" METHOD="POST">
<DIV CLASS="teensy"><LABEL FOR="search">Search for a Course Name,ID, or Description: </LABEL></DIV>
<INPUT TYPE="text" SIZE="25" NAME="searchstring" ID="search" ><INPUT TYPE="image" SRC="/common/images/categorized_gateway_search.gif" ALT="Search button" BORDER="0">
</FORM>

Control fonts, colors, etc. using style sheets

You may want to read more about physical styles and why they should be avoided before reading this section.

The original page set the margins and the background, text, and link colors within the BODY tag. Throughout the page, font family, size, and style were controlled using the FONTtag. In the accessible version, we defined all of these characteristics using a cascading style sheet. Although we wanted to keep all of the values as they were in the original page, we did change the left margin because once we removed the layout tables, the left margin did not look right.

Original BODY tag:

<BODY TOPMARGIN='20' LEFTMARGIN='0' BGCOLOR='#ffffff' TEXT='#000000' VLINK='#003366' LINK='#003366' >

Style sheet BODY definitions:

BODY {font-family:Arial helvetica; margin-top:20; margin-left:10; background-color:#ffffff; color:#000000;}
A {color:#003366;}

Accessible BODY tag:

<BODY>

Original implementation of font changes:

<font size='-1' face='Arial,Helvetica'><b><A href="gateway.pl?parent_id=c6e1e9a87q6ja04pqfen1zz3tvusd9m1">Fall 1999 Classes</b></font> </a>

Style sheet font style definition:

.mybold {font-size:80%; font-weight:bold;}

Accessible font changes, implementing style sheets:

<A CLASS="mybold" HREF="gateway.pl?parent_id=c6e1e9a87q6ja04pqfen1zz3tvusd9m1">Fall 1999 Classes</A>

See our entire cascading style sheet.


Contact us at infotechaccess@server.rehab.uiuic.edu

Go to Accessibility Examples Main Page


Valid HTML 4.0!