skip page navigation
University of Wisconsin-Madison Web Accessibility 101 - Policy, Standards, and Design Techniques

Scripts and Applets

What you will find in this lesson?

 

Section 508 - Standard (l) takes into account that not all versions of assistive technology support scripting. A definition of scripting is provided in the glossary. Current versions of web browsers and screen readers support scripting. Section 508 - Standard (l) directs designers to consider alternatives to scripting when appropriate.

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.

glossary

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

home
glossary
standard a-p
validation

 

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