NCDAE Tips and Tools: Principles of Accessible Design
Created: March 2007
Table of Contents
- Introduction
- Principles
- Provide appropriate alternative text
- Make sure that content is well structured and clearly written
- Provide headers for data tables
- Ensure users can complete and submit all forms
- Ensure links make sense out of context
- Caption and/or provide transcripts for media
- Do not rely on color alone to convey meaning
- Design to standards
- Ensure accessibility of non-HTML content
- Other Resources
Introduction
Below you will find some key principles of accessible design. Most accessibility principles can be implemented very easily and will not impact the overall "look and feel" of your web site. This is not a comprehensive guide to all accessibility issues, but by addressing these basic principles, you will ensure greater accessibility of your web content to everyone.
Although the following principles can be applied to several electronic formats (including Adobe PDF, Microsoft Word and PowerPoint files, OpenOffice.org OpenDocument files and others), this introduction will give more attention to principles in HTML. There are a few reasons for this:
- HTML sets the pattern that many other electronic formats follow.
- NCDAE has already created other fact sheets that address specific techniques for specific tools.
- The majority of electronic content used in education is accessed on the web. Most of this content is in HTML, so it makes sense to focus on HTML.
- HTML is still the most accessible format for almost every type of content.
Principles
Provide appropriate alternative text
In a nutshell
Every non-text element needs a text alternative (alt text) that describes its content and function.
People who benefit
- Screen reader users (usually blind)
- Anyone who has their images disabled. This may include low bandwidth users and users of small screen devices like smart phones.
Details
Alternative text is a textual alternative to non-text content, usually images in web pages. It is probably the most commonly known principle of web accessibility, but it can be very difficult to create appropriate alt text. The following guidelines should help:
- Use the fewest number of words necessary.
- Avoid words like "picture of" and "image of".
- Alt text should present the content and function of an image, not necessarily a description of an image.
- If an image has no relevant content or function, that is if it is decorative, then the image should contain empty alt text (
alt=""
inside the<img>
tag). Empty alt text should only be used with a decorative image. - Context is crucial when deciding on appropriate alt text. The alt text for the same picture may be very different, depending on the function of the image in a page.
- An image that is a link must always have alt text that describes the function of the link, e.g. if you have an image that contains the text "Home," and links to the homepage, then the alt text of the image should probably be "home".
- If you are using an image map, every hotspot must have meaningful alt text, because every hotspot is a link. The main image must also have alt text, which may be empty if it has no content or function in addition to the function of the hotspots.
- If you have already described the content of an image with nearby text, the image should probably have empty alt text.
- If an image, chart or graph requires a lengthy description make sure that information is available in one of the following ways (listed in the approximate order of
recommendation).
- Provide the long description in the context of the document itself (when appropriate)
- Provide a link to a long description via a normal text link
- Make the image a link to a longer description
- Provide a link to a long description via the longdesc attribute
Consider the following image:
Correct alt text would be "National Center on Disability and Access to Education," although it may be different, depending on context. The code for this image is:
<img src="/img/template/logo_print.png" alt="NCDAE: National Center on Disability and Access to Education" height="97" />
You can also create alt text in almost every type of electronic document (DOC, PPT, PDF and others).
Make sure that content is well structured and clearly written
In a nutshell
There are many ways to make your content easier to understand. Write clearly, use clear fonts, and use headings and lists appropriately.
People who benefit
- People with cognitive disabilities
- People with lower literacy
- Everyone
Details
There is probably more written about writing on the web than the other nine principles in this resource combined. Here are a few basic principles:
- Use the simplest language appropriate for your content. There are several reading level analyzers that can help you with this task. Microsoft Word has one (Tools > Spelling & Grammar), or try the Juicy Studio Readability Test online.
- Organize your content using true headings (
<h1>
,<h2>
, etc.). That will make your content easier to read and easier to navigate. - Avoid slang and jargon, as it can be especially confusing for users with cognitive disabilities.
- Use the active voice (e.g. "They ate the food," not "The food was eaten by them").
- Use positive language (e.g. "Remember to...," not "Don't forget to").
- Use empty (white) space to improve readability.
- Use illustrations to supplement text.
- Check spelling and grammar.
Help users navigate to relevant content
In a nutshell
There are three main ways you can help users navigate to relevant content:
- In a web page, provide a link that allows the user to skip from navigation to the main content in the page.
- Use true headings, not just enlarged text, to organize content.
- Provide a table of contents with links to each sub-section.
People who benefit
- Screen reader users (usually blind)
- People navigating with a keyboard
Details
You should provide a method that allows users to skip navigation or other elements that repeat on every page. This is usually accomplished by providing a "Skip to Content," "Skip to Main Content," or "Skip Navigation" link at the top of the page which jumps to the main content of the page. In order for this to be effective, it must be the first link on the page and it should be visible, so that people who are using a keyboard, but not a screen reader, can use the link as well. For example, the first link in this page reads "Skip to Main Content." The source code is: <a href="#content" title="Skip to main content">Skip to main content</a>
This text links to the beginning of the unique content in the page. In that way, the first option that a screen reader or keyboard user encounters allows him or her to skip all of the navigation.
Screen reader users can also navigate through a document using true headings. True headings, properly used, can make a page much more accessible for everyone. They divide content into meaningful chunks, reducing cognitive load. They also make a page much more scannable. True headings can be created in HTML and in several other formats, like MS Word and PDF.
In addition to headings, a table of contents makes it much easier to navigate through a long page. Although it may not always be necessary, it can be very helpful, especially when navigating a longer web page or electronic document. Every heading in a table of contents should link to the corresponding heading in the document. That way, all users can navigate to the appropriate section more quickly. This document contains an example of an appropriate table of contents.
Provide headers for data tables
In a nutshell
Tables that are used to organize tabular data should have appropriate table headers (the <th>
element). Data cells should be associated with their appropriate headers, making it easier for screen reader users to navigate and understand the data table.
People who benefit
- Screen reader users (usually blind)
- People with cognitive disabilities
Details
Tables are used in two ways: for layout and to organize data. Up until a few years ago, basically all web sites used tables for layout, that is, content was placed inside tables and cells, which were resized to position content in a specific place on the page. As web browsers and web design knowledge have improved, layout tables have become less necessary. Instead of tables, you can use Cascading Style Sheets (CSS) to organize content on the web. With other electronic content (e.g. Word documents), you can use columns, text alignment, styles and other techniques in place of tables. Using tables for layout usually does not have a significant impact on the accessibility or inaccessibility of a site or document, but they can usually be avoided. If you are using layout tables, make sure that the visual order of your content and the true reading order (in the HTML) is the same.
In true tables, or data tables, content is organized in a grid. Every data table needs one or more rows or columns of headers. In HTML, these table headers should be set apart as headers by using the <th> tag. For example, a simple data table would look like this:
Name | Age | Birthday |
---|---|---|
Jackie | 5 | April 5 |
Beth | 8 | January 14 |
And here's the markup:
<table border="1">
<caption>Shelly's Daughters</caption>
<tr>
<th scope="col">Name</th>
<th scope="col">Age</th>
<th scope="col">Birthday</th>
</tr>
<tr>
<th scope="row">Jackie</th>
<td>5</td>
<td>April 5</td>
</tr>
<tr>
<th scope="row">Beth</th>
<td>8</td>
<td>January 14</td>
</tr>
</table>
There are 5 important tags in this table:
<table>
: The whole table goes inside this tag.<caption>
: This is basically like a title for the table. It will go at that top of the table, like the words "Shelly's Daughters" in the previous example. A caption is optional.<tr>
: A table is organized into rows, e.g. the cells "Jakie," "5" and "April 5" are all in the same<tr>
tag.<th>
: This is the tag you use for a table header. You may notice that the every th tag in this table contains a scope attribute, either scope="col" or scope = "row". This is how you designate if these are row headers or column headers.<td>
: The content for each non header table cell should be inside a<td>
tag.
There are other important tags such as <thead>
, <tbody>
, <tfoot>
, and <caption>
, but these are not as critical as the tags described above.
For tables with more than one row or column of headers, you have to use <th id="a unique id">
for every header and <td headers="corresponding header id's">
. For example, in the following table,
Name | Age | Birthday | |
---|---|---|---|
by birth | Jackie | 5 | April 5 |
Beth | 8 | January 14 | |
by marriage | Jenny | 12 | Feb 12 |
the code for the "Age" header would be <th id="age">Age</th>
and the code for the data cell "5" would be <td headers="birth jackie age">5</td>
It is also possible, although more difficult, to create headers for tables in PDF files, Microsoft Word documents and other formats. Read more about this in our fact sheets.
Ensure users can complete and submit all forms
In a nutshell
Ensure that every form element (text field, checkbox, dropdown list, etc.) has a label and make sure that label is associated to the correct form element using the <label> tag. Also make sure the user can submit the form and recover from any errors, such as the failure to fill in all required fields.
People who benefit
- Screen reader users (usually blind)
- Users who navigate using a keyboard (instead of or in addition to a mouse)
- People with cognitive disabilities
- People who have reduced fine motor skills, because they can click on the form label in addition to the form element.
Details
Forms need to be organized logically and every form element needs a label. There are two main requirements for accessible labels:
- Put labels adjacent to or near their controls, so the labels are associated visually.
- Use HTML markup to associate the controls explicitly with their labels. You can accomplish this with the
<label>
tag.
For example, the following element has an implicit label (the word Name: close to the field) and an explicit label (the <label>
tag that ties the label and field together).
You can't see the explicit label unless you look at the markup. Here's the HTML markup:
<label for="name1">Name:</label>
<input type="text" id="name1" name="textarea" />
You will see that the <label>
tag (around "Name:") contains for="name1"
and that the <input>
tag contains id="name1"
. These two elements are tied together because the for
and id
tags both share the word "name." The word that they share could be any string of characters (no spaces), but it has to be the same in the label
and input
tags, and it can only be used once in the page. So if you had a "First Name" field and a "Last Name" field, they couldn't both have the id
"name." One could be "fname" and the other "lname," or any other unique word. The key is that the two tags are tied together using <label for="">
and <input id="">.
Creating accessible forms can be very technical and complex, but there are other general principles to keep in mind:
- Group similar elements (such as checkboxes) together using the
<fieldset>
tag. - Ensure that the purpose of the form is clear. Have you ever entered a search term in a form element, only to learn that the form is supposed to be used to subscribe to an email list?
- Make sure that it is clear which form elements are required and which are optional. Don't make a field required if it is not necessary.
- If there are errors in a form that has been submitted, alert the user in an accessible way (especially to a screen reader user), and make it easy to re-enter the incorrect information and resubmit the form.
Form labels can be added to other documents such as Doc and PDF with varying degrees of success.
Ensure links make sense out of context
In a nutshell
Every link should make sense if the link text is read by itself. Certain phrases like "click here" and "more" must be avoided.
People who benefit
- Screen reader users (usually blind)
- People with cognitive disabilities
- Everyone (many people find vague links annoying)
Details
Screen reader users may choose to navigate through a page by having a list of links read to them. This will only be valuable if the links make sense out of context. The following link text should be avoided
- Phrases such as "Click here", "Here",
- Phrases such as "More", "More information", "Read more" and "Continue"
- Links that only describe a file type, such as "HTML", "PDF", and "Word" repeated over and over.
- URL as link text. This may sometimes be appropriate, if you want people to know what the URL of a certain site is, but should usually be avoided. This is especially common In Word documents, because Word automatically creates links from URL's.
Caption and/or provide transcripts for media
In a nutshell
Videos and live audio must have captions and a transcript. With archived audio, a transcription may be sufficient.
People who benefit
- People who are Deaf or hard of hearing
- People with cognitive disabilities (multi-modal)
- Anyone who has audio muted or disabled
Details
Captions are synchronized text equivalents of the spoken word and other audio content. They allow the audio content of web multimedia to be accessible to those who do not have access to audio, primarily the Deaf and hard-of-hearing. Captioning can be expensive, and a little daunting at first, but it is also a very important part of making content accessible.
Common web accessibility guidelines indicate that captions should be:
- Synchronized - the text content should appear at approximately the same time that audio would be available
- Equivalent - content provided in captions should be equivalent to that of the spoken word
- Accessible - caption content should be readily accessible and available to those who need it
There are five main steps to captioning a file for the web.
- Create or obtain a transcript
- Segment into individual caption displays and add speaker names
- Synchronize the text transcript with the media
- Create appropriate caption files (QTtext, RealText, SAMI)
- Combine with media and distribute the captioned media
More information is available in the captioning fact sheet.
Do not rely on color alone to convey meaning
In a nutshell
The use of color can enhance comprehension, but do not use color alone to convey information. Make sure that color contrast is strong.
People who benefit
- Colorblind
- Screen reader users (usually blind)
- People with low vision
- People with some styles disabled, like users of small screen devices
Details
There are two ways that color can be misused on the web. First, certain color combinations, most commonly red and green, can be difficult to distinguish for a user who is colorblind. These color combinations should be avoided when possible. Vischeck is a site that will simulate what an image or site looks like to people with different forms of color blindness.
Second, the contrast between two colors should be strong. This is important for all users, but is especially important for users with low vision. There are several tools available online that allow you to test the contrast between two colors to ensure that it is sufficient. One of the most popular tools is the Juicy Studio Colour Contrast Analyser.
Design to standards
In a nutshell
HTML compliant and accessible pages are more robust and provide better search engine optimization. Cascading Style Sheets (CSS) allow you to separate content from presentation. This provides more flexibility and accessibility of your content.
People who benefit
- Everyone
Details
A page that has clean HTML is more likely to be accessible. There are a couple of reasons for this.
- Some accessibility requirements, such as alt text for images, are also HTML requirements.
- If you are paying attention to your code, you are more likely to be aware of accessibility problems.
In additional to HTML standards, there are also accessibility standards, such as Section 508 of the US Rehabilitation Act, and guidelines, such as the Web Content Accessibility Guidelines 1.0. Following these standards and guidelines will almost always make your site more accessible.
The easiest way to check the validity of code is to use a validator, such as the W3C HTML validator and CSS validator. There are also tools to help you check how well your site adheres to accessibility guidelines or standards, such as Cynthia Says and WAVE.
Ensure accessibility of non-HTML content
In a nutshell
Non-HTML content (e.g. PDF, Microsoft Word and PowerPoint files, Adobe Flash) should be accessible, or an accessible alternative should be provided.
People who benefit
- Everyone
Details
There are many non-HTML documents on the web and on our computers. Almost all of the principles in this resource can be applied when creating non-HTML documents. For example, you can add alt text, headings, table headers, and styles to Word Documents. You can also add a series of tags to PDF files that make them accessible to screen reader users. While most electronic document formats can be made reasonably accessible, the process differs for each format and tool. NCDAE has created fact sheets for some of the most popular tools including Adobe Acrobat, Microsoft Word and PowerPoint, and OpenOffice.org Writer and Impress.
Many times, a document is written in a certain format for a certain reason, but sometimes the best way to increase the accessibility of a document is to convert it to HTML. HTML content can usually be made more accessible than any other format, and it can usually be made accessible with less effort.
Other Resources
- NCDAE resources
- WebAIM (a partner)
- Web Accessibility Initiative. The homepage of the World Wide Web Consortium's (W3C) Web Accessibility Initiative. This is sort of the "international governing body" of web accessibility.
- Accessify forum: A very active accessibility forum
- University of Minnesota Duluth Accessibility Resources: An extremely (almost overly) comprehensive list of accessibility resources.