Section 508 - Standard (l)
When pages utilize scripting languages to display
content, or to create interface elements, the information provided by
the script shall be identified with functional text that can be read by
adaptive technology.
back to top
Explanation - Standard
(l) - Scripts and Applets
There are several concepts that need to be understood as precursors to
the accessibility of scripts.
Assistive Technology and Scripts
Current versions of screen readers support scripting. Without specifying
version numbers, it is fair to state that support for scripting hasn't
always been included in assistive technology. Understand that scripts
typically complete some type of a function on a web page. A barrier exists
if a scripting component on a web page delivers content and an individual
is unable to access that component due to their assistive technology device's
inability to process scripting. It is the responsibility of the designer
to remove that barrier or provide an alternative means to get the content
otherwise delivered through the script.
Server Side and Client Side Scripts
A server side script is a file containing a script that is interpretted
by a web server. Many Active Server Page (ASP) or Java Server Page (JSP)
scripts are server side. The server processes the script and returns static
HTML back to the web browser. This type of script doesn't require any
script processing functionality on the part of the web browser. As long
as the HTML that is returned to the web browser is accessible, the script
is without concern from an accessibility viewpoint.
A client side script is a script that is embedded within the HTML. Javascript
is a commonly used client side script. Client side scripts are dependent
upon a web browser's capabilities. A client side script and a browser
that doesn't process scripts equate to an inaccessible element in a web
page.
When examining the accessibility of a page, you should ask yourself if
scripts are used. If so, are they server side or client side. If they
are client side, you may have an accessibility barrier. If they are server
side, examine the HTML that is returned from the script for accessibility.
If a problem exists, you will most likely need to modify the HTML code
in the results page, rather than the script.
A logical conclusion is that developers should keep all scripts server
side. This just isn't a realistic solution. Some scripts are very small
and require an instant response. Think of a rollover button. You have
encountered these. As you move your mouse over an image, the graphic changes
to a different color or shape. This is a client side script. It needs
immediate response; moving it server side would add a degree of response
that is not acceptable.
Script Functionality
The reasons scripting exists in the web design arena is that the purpose
of HTML is to provide structure to content. Throw in style sheets and
we have control over the way that content appears. But what if a designer
wants the site to be able to do something. Like convert celcius to centigrade.
Or allow a user to query a set of records that are stored in a database.
Or change the color of a navigation button when the user moves their mouse
over it. Script functions can be categorized into several types.
- Decorative scripts
- Content delivery scripts
Decorative scripts
Decorative scripts are primarily cosmetic. A javascript rollover is a
great example. A user that is able to move the mouse over the image will
find that it switches from the first image to display a second. When the
mouse is moved off of the image, it reverts back to its original form.
The button below labeled as "glossary" is an example of a decorative
javascript rollover button. Move your mouse onto the image, then move
it back off.

Here is the key. What is the real purpose of this button? In this example,
it is a link to the course glossary. The graphic has been assigned alt-text.
A screen reader or text browser would render the alt-text and convey it
as a hyperlink. This rollover button is accessible. Whether or not a user
can see or use the rollover doesn't interfere with the real purpose of
the element - to act as a hyperlink.
Use this understanding as your first gauge to a script's accessibility.
Ask yourself, "What is the function of this element/script?"
If it is only for looks, then move on.
Content Delivery Scripts
Most scripts deliver content of some type. A few examples:
- A department on campus provides a javascript calculator that calculates
the circumference of a circle to users that can provide a radius. The
user enters the radius, presses a button labeled as calculator, and
waits for the return of the circumference.
- A user moves the mouse over a button. The button shifts slightly and
from its right hand side, a series of other navigation options display.
The user is able to move the mouse over this submenu to navigate.
- A designer places a javascript jump menu on a page as a navigation
tool. Users are directed to click in the box, then choose a link. The
jump menu links the user to the chosen page.
- A library web page contains a data query form. A user enters the name
of an author and presses a button labeled as submit. All books by that
author are returned in a list to the user. This is the delivery of content.
Before we get into alternatives, remember to examine the location of
the script. If it is server side, as the last example is, then your accessibility
concerns can subside. If it is a client side script, the question becomes,
"What would a user do if they were unable to obtain the results of
the script?" In most cases the results can be provided in some other
manner.
back to top
Techniques for
Scripts and Applets
Noscript Tag
Noscript is an HTML tag. The content placed within a noscript tag is
visible only to browsers or assistive technology devices that don't support
scripting. The exact placement of the noscript tag within the HTML code
is open to argument. Feel good about placement immediately prior to or
after the actual script element the user will encounter. Let's examine
the use of the noscript tag.
We have designed a javascript jump menu to use for navigation. The options
within this box are: home page, glossary, standards A-P, and validation.
Inspect the navigation jump menu.
The navigation jump menu page has a noscript tag in the HTML code. Unless
you are visiting this site with a browser that doesn't support scripting,
the results of the noscript tag are transparent.
Noscript Code Example
The noscript code is as follows. Note the noscript HTML tag that begins
and ends the sequence of code. The results of
the noscript tag are below the HTML sample
<noscript>
<table width="25%" border="0" cellspacing="0"
cellpadding="0">
<tr>
<td><a href="../index.htm">home</a></td>
</tr>
<tr>
<td><a href="../glossary.htm">glossary</a></td>
</tr>
<tr>
<td><a href="../a_p.htm">standard a-p</a></td>
</tr>
<tr>
<td><a href="../validation.htm">validation</a></td>
</tr>
</table>
</noscript>
Noscript Results Example
Noscript can include almost anything that a designer can create as an
alternative. Hyperlinks, paragraphs of text, a data table, or even an
accessible audio file are all possibilities. In some cases, an alternative
is as simple as a phone number or email address. Use of a human contact
as an alternative is acceptable; be sure that the department has planned
on a way to accomodate individuals that may use this alternative.
Let's revisit the other example provided at the onset of this topic.
What is an alternative for each?
- A department on campus provides a javascript calculator that calculates
the circumference of a circle to users that can provide a radius. The
user enters the radius, presses a button labeled as calculator, and
waits for the return of the circumference.
- ALTERNATIVE: Noscript that provides
the user with the formula for calculating circumference. Noscript
that provides a phone number to call. A person will do the math
for individuals that call.
- A user moves the mouse over a button. The button shifts slightly and
from its right hand side, a series of other navigation options display.
The user is able to move the mouse over this submenu to navigate.
- ALTERNATIVE: NOSCRIPT that provides
these options in an HTML table. Another option is to make the main
button a link. This link connects the user to a page where all the
navigation links are available.
- A library web page contains a data query form. A user enters the name
of an author and presses a button labeled as submit. All books by that
author are returned in a list to the user.
- ALTERNATIVE: If you've been paying close
attention, you may have been wondering about this example. This
is most likely a server side script. An alternative isn't needed.
Inspect the HTML code that is returned for accessibility.
There is a lot to consider when it comes to scripting. Helpful alternatives
may require divergent thinking and in some cases a bit of support from
others in the department.
back to top
Other Considerations
Generating effective NOSCRIPT content may be a challenge. Some experts
use the wording "compareable alternative". Think through the
types of accomodations that may be possible. At the very least, provide
users with contact information at which they may receive assistance if
needed.
back to top
Validation Technique(s)
The testing measures that follow can be used to evaluate compliancy of
your web page(s) with the concepts presented for Standard (l).
- use the web page using a screen reader or speech synthesizer
- use the web page using a text based browser such as Lynx
- view the page in an HTML editor such as Dreamweaver where scripting
isn't processed
- turn your mouse over and use the page using only the keyboard
back to top
complete
a self-assessment about the use of scripts
|