When running accessibility tests make sure to use more than one validator, since not all errors or issues will be found by all of them.
Usability and Accessibility should come before validation.
Each page needs to have the language set so Assistive technologies know which voice and tone the screen reader should read the content. If your screen reader is set to Spanish and the page language is in English without a language set the text will be read quickly in a Spanish accent.
You also need to set the text that is in a different language than the main page language. An example would be an English page with a quote in French.
The pages language attribute needs to be part of the HTML tag.
<html lang="en">
For more details read Adrian Roselli's article "On Use of the Lang Attribute".
WebAIM article on how to implement skip navigation.
Reasons for skip nav:
<body>
<div class="hide"> <a href="#maincontent">Skip to Main Content</a> </div>
<ul>
<li>First Link</li>
…
</ul>
<h2 id="maincontent" tabindex="-1">Heading - H2</h2>
<p>This is the first paragraph</p>
.hide a, .hide a:hover, .hide a:visited {
display: block;
position: absolute;
left:-10000px;
top:auto;
width: 100%;
height: 3em;
font-weight: bold;
text-align: center;
}
.hide a:active, .hide a:focus {
background: #BEFF9E;
position: static;
width: auto;
height: auto;
padding: 1em;
margin: auto;
}
The text and font size on a website can make it difficult for visual people. If the text is too small, in poor color contrast and all jammed together, it makes sites inaccessible.
The more vertical rhythm and letter spacing a page has the easier it is to read.
Items to think about:
Rich Rutter reviewed his logs and noticed that 95% of the people visiting his website had their font size set at the default of “MEDIUM”, which is 16px.
body { font-size: 75%;} - 12px
h1 { font-size: 3em;} - 36px
h2 { font-size: 2em;} - 24px
…
h6 { font-size: 1.125em;} - 14px
p, a, li, … { font-size: 1em;} - 12px
… { line-height: 1.5em; letter-spacing: .125em;} - line height - 18px
W3C Checkpoint 2.2 - Ensure that foreground and background color combinations provide sufficient contrast when viewed by someone having color deficits or when viewed on a black and white screen.
Two colors provide good color visibility if the brightness difference and the color difference between the two colors are greater than a set range.
The color contrast ratio needs to be 4.5:1 or higher to pass.
Where ever you have “hover” (a:hover) you should also have “focus” (a:focus), along with “active” for older IE browsers.
#nav a {
background: #ACC7FF;
text-decoration: none;
}
#nav a:hover, #nav a:focus, #nav a:active {
background: #BEFF9E;
text-decoration: underline;
}
An example of a:“hover”, a:“focus”, and a:“active” in action.
Individuals using screen readers can look at a list of all the links on a page out of context. So if they keep hearing “click here” over and over again it makes no sense to them.
Another good reason is that your not getting added Google juice as they say by making the link text relevant to the link.
Click here to review the Acme TNT company's annual report.
Please review the Acme TNT companies annual report.
Use the following heading levels - H1, H2, H3, H4, H5, and H6.
This will allow people using screen readers to skip around to the important parts of the page using key combinations.
<table summary="List of Washington, DC, libraries fiscal record information.">
<caption>List of Libraries Fiscal Record Information</caption>
<tr>
<th scope="col">Library Name</th>
<th scope="col">Fiscal Year</th>
<th scope="col">Quarter</th>
</tr>
<tr>
<th scope="row">Anacostia Interim Library</th>
<td>2007</td>
<td>4</td>
</tr>
There are other ways to use “TH” in Roger Johansson's article about creating accessible tables.
<table summary="List of Washington, DC, libraries fiscal record information.">
<caption>List of Libraries Fiscal Record Information</caption>
<tr>
<th id="library-name">Library Name</th>
<th id="fiscal-year">Fiscal Year</th>
<th id="quarter">Quarter</th>
</tr>
<tr>
<th id="library" headers="library-name">Anacostia Interim Library</th>
<td headers="fiscal-year library-name">2007</td>
<td headers="quarter fiscal-year library-name">4</td>
</tr>
Here is the table example for the code above and another table example that is easier to read.
FIELDSET - element used to group related fields
LEGEND - element used to provide a caption for a FIELDSET
Where should labels be? Top, Left justified, or Right justified.
Luke W. article about where labels should go and an Eye Scan article that shows data and examples of forms.
Older IE's does not understand the implicit association of a label and a form field
“LABEL” associates content with a form control, either implicit association by wrapping the “LABEL” with form control and the text explicit association
LABELs “FOR” attribute is an “ID” reference to the form control
<fieldset class="form_choices">
<legend>Hide my information.</legend>
<label for="visible_1" >Yes</label>
<input type="radio" id="visible_1" value="Yes" checked="checked" />
<label for="visible_2" >No</label>
<input type="radio" id="visible_2" value="No" />
</fieldset>
By applying a bit of CSS in my example form you can make this look like it's just a question and your choices.
Need label on search box for screen readers to know what they are looking at.
Add an HREF anchor to the search results page and the form to skip all the navigation etc.
<div class="SEARCH">
<form name="Skills_Search" action="searchResults.html#MAINCONTENT">
<label for="search2">Search</label>
<input name="search2" id="search2" />
<input type="submit" value="Search" />
</form>
</div>
<h2 id="MAINCONTENT" tabindex="-1">Search Results</h2>
<p>Search results go here.</p>
To hide the word “Search” just add to the CSS class used for the skip navigation.
Please review the search box and search results example.
All FORMs have at least one required field. You need to have your page look good and still be accessible to screen readers.
To do that we just have to add a few things to the label and a bit of CSS.
<li>
<label for="first_name"><em aria-hidden="true">Required</em>First Name</label>
<input name="first_name" id="first_name" aria-required="true" size="25" maxlength="25" /><span class="req"> *</span>
</li>
.hide_info a, .hide_info a:hover, .hide_info a:visited, .search label, label em {
position: absolute;
…
overflow: hidden;
}
Please review the required field example.
Type of Landmark Roles
I am the main content.
<div id="nav">
<ul role="navigation" aria-label="Main Menu">
<li>Products</li>
</ul>
</div>
<div role="main">
<p>I am the main content.</p>
</div>
<form role="search">
<label for="search">Search</label>
<input id="search" />
<input type="button" value="Search" />
</form>
<input name="dob" id="dob" size="10" maxlength="10" value="02/24/1963" />
<input name="dob-city" id="dob-city" size="25" maxlength="50" value="Rochester, NY" />
Usually the MAXLENGTH field is a lot larger than the SIZE.
You could use CSS to replace the SIZE attribute.
Most people (myself included) place input field(s) in ‘P’ or “DIV’ - sensible choice (except in certain instances).
Use ‘OL’ or ‘UL’ since most forms are lists of questions or form controls anyway.
<ul>
<li> <label>Address Line 1</label> <input /> </li>
<li> <label>Address Line 2</label> <input /> </li>
<li> <label>City</label> <input /> </li>
<li> <label>State</label> <input /> </li>
<li> <label>Postal Code</label> <input /> </li>
</ul>
Free reader extension for Firefox that acts like screen reader - created by Charles L. Chen.
24-Hour Online Community Event Celebrating Global Accessibility Awareness Day
From - Accessible Electronic Documents Community of Practice (AED COP)
Learn how to create accessible Microsoft Word, Excel, PowerPoint, and PDF documents that conform to the Revised 508 Standards. You should to review AED COPs how-to create documents, videos, and checklists.
From - Accessible Electronic Documents Community of Practice (AED COP)
Each video series is about 40 - 50 minutes long with about a dozen or so videos, there are only five videos PDF videos because they are longer in length.