WCAG Cheat Sheet

This document serves to simplify the long-winded language of the W3C's WCAG document.

Priority 1

A Web content developer must satisfy this checkpoint. Otherwise, one or more groups will find it impossible to access information in the document. Satisfying this checkpoint is a basic requirement for some groups to be able to use Web documents.

General

Provide text equivalents
Provide a text equivalent for every non-text element (e.g., via "alt", "longdesc", or in element content). This includes: images, graphical representations of text (including symbols), image map regions, animations (e.g., animated GIFs), applets and programmatic objects, ascii art, frames, scripts, images used as list bullets, spacers, graphical buttons, sounds (played with or without user interaction), stand-alone audio files, audio tracks of video, and video. 1.1
Convey information without color
Ensure that all information conveyed with color is also available without color, for example from context or markup. 2.1
Identify change of natural language
Clearly identify changes in the natural language of a document's text and any text equivalents (e.g., captions). 4.1
Organize documents
Organize documents so they may be read without style sheets. For example, when an HTML document is rendered without associated style sheets, it must still be possible to read the document. 6.1
Dynamic content
Ensure that equivalents for dynamic content are updated when the dynamic content changes. 6.2
No flicker
Until user agents allow users to control flickering, avoid causing the screen to flicker. 7.1
Use simple language
Use the clearest and simplest language appropriate for a site's content. 14.1

Images and image maps

Redundant text links for server-side image maps
Provide redundant text links for each active region of a server-side image map. 1.2
Prefer client-side image maps
Provide client-side image maps instead of server-side image maps except where the regions cannot be defined with an available geometric shape. 9.1

Tables

Indentify row and column headers
For data tables, identify row and column headers. 5.1
Associate data and header cells
For data tables that have two or more logical levels of row or column headers, use markup to associate data cells and header cells. 5.2

Frames

Title each frame
Title each frame to facilitate frame identification and navigation. 12.1

Applets and scripts

Make pages usable without scripts, etc.
Ensure that pages are usable when scripts, applets, or other programmatic objects are turned off or not supported. If this is not possible, provide equivalent information on an alternative accessible page. 6.3

Multimedia

Provide auditory description for multimedia
Until user agents can automatically read aloud the text equivalent of a visual track, provide an auditory description of the important information of the visual track of a multimedia presentation. 1.3
Synchronize alternatives
For any time-based multimedia presentation (e.g., a movie or animation), synchronize equivalent alternatives (e.g., captions or auditory descriptions of the visual track) with the presentation. 1.4

If all else fails

Make alternative page
If, after best efforts, you cannot create an accessible page, provide a link to an alternative page that uses W3C technologies, is accessible, has equivalent information (or functionality), and is updated as often as the inaccessible (original) page. 11.4

Priority 2

A Web content developer should satisfy this checkpoint. Otherwise, one or more groups will find it difficult to access information in the document. Satisfying this checkpoint will remove significant barriers to accessing Web documents.

General

Ensure sufficient contrast
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. [Priority 2 for images, Priority 3 for text]. 2.2
Use appropriate markup language
When an appropriate markup language exists, use markup rather than images to convey information. 3.1
Validate documents
Create documents that validate to published formal grammars. 3.2
Use CSS
Use style sheets to control layout and presentation. 3.3
Use relative units
Use relative rather than absolute units in markup language attribute values and style sheet property values. 3.4
Use header elements
Use header elements to convey document structure and use them according to specification. 3.5
Use lists
Mark up lists and list items properly. 3.6
Mark up quotations
Mark up quotations. Do not use quotation markup for formatting effects such as indentation. 3.7
Check for dynamic content
Ensure that dynamic content is accessible or provide an alternative presentation or page. 6.5
Avoid blinking
Until user agents allow users to control blinking, avoid causing content to blink (i.e., change presentation at a regular rate, such as turning on and off). 7.2
Avoid auto-refresh
Until user agents provide the ability to stop the refresh, do not create periodically auto-refreshing pages. 7.4
Avoid auto-redirect
Until user agents provide the ability to stop auto-redirect, do not use markup to redirect pages automatically. Instead, configure the server to perform redirects. 7.5
Avoid popups
Until user agents allow users to turn off spawned windows, do not cause pop-ups or other windows to appear and do not change the current window without informing the user. 10.1
Use latest W3C technologies
Use W3C technologies when they are available and appropriate for a task and use the latest versions when supported. 11.1
Avoid deprecated features of W3C technologies
Avoid deprecated features of W3C technologies. 11.2
Divide information up
Divide large blocks of information into more manageable groups where natural and appropriate. 12.3
Clearly identify the target of each link
Clearly identify the target of each link. 13.1
Provide metadata
Provide metadata to add semantic information to pages and sites. 13.2
Provide site map / TOC
Provide information about the general layout of a site (e.g., a site map or table of contents). 13.3
Use consistent navigation
Use navigation mechanisms in a consistent manner. 13.4

Tables

Ensure TABLEs make sense when linearized
Do not use tables for layout unless the table makes sense when linearized. Otherwise, if the table does not make sense, provide an alternative equivalent (which may be a linearized version). 5.3
Don't use structural markup for visual formatting
If a table is used for layout, do not use any structural markup for the purpose of visual formatting. 5.4

Frames

Describe FRAMEs
Describe the purpose of frames and how frames relate to each other if it is not obvious by frame titles alone. 12.2

Forms

Ensure LABELs are positioned properly
Until user agents support explicit associations between labels and form controls, for all form controls with implicitly associated labels, ensure that the label is properly positioned. 10.2
Associate LABELs to their controls
Associate labels explicitly with their controls. 12.4

Applets and scripts

Ensure event handlers are device independent
For scripts and applets, ensure that event handlers are input device-independent. 6.4
Avoid moving content
Until user agents allow users to freeze moving content, avoid movement in pages. 7.3
Make scripts compatible with assistive technologies
Make programmatic elements such as scripts and applets directly accessible or compatible with assistive technologies [Priority 1 if functionality is important and not presented elsewhere, otherwise Priority 2.] 8.1
Ensure device-independent operation
Ensure that any element that has its own interface can be operated in a device-independent manner. 9.2
Specify logical event handlers
For scripts, specify logical event handlers rather than device-dependent event handlers. 9.3

Priority 3

A Web content developer may address this checkpoint. Otherwise, one or more groups will find it somewhat difficult to access information in the document. Satisfying this checkpoint will improve access to Web documents.

General

Specify acronym expansion
Specify the expansion of each abbreviation or acronym in a document where it first occurs. 4.2
Identify document language
Identify the primary natural language of a document. 4.3
Create a logical tab order
Create a logical tab order through links, form controls, and objects. 9.4
Provide accesskeys
Provide keyboard shortcuts to important links (including those in client-side image maps), form controls, and groups of form controls. 9.5
Include printable characters between adjacent links
Until user agents (including assistive technologies) render adjacent links distinctly, include non-link, printable characters (surrounded by spaces) between adjacent links. 10.5
Respect content-negotiation
Provide information so that users may receive documents according to their preferences (e.g., language, content type, etc.) 11.3
Use navigation wisely
Provide navigation bars to highlight and give access to the navigation mechanism. 13.5
Provide "jump to..." links
Group related links, identify the group (for user agents), and, until user agents do so, provide a way to bypass the group. 13.6
Provide 'friendly' searches
If search functions are provided, enable different types of searches for different skill levels and preferences. 13.7
Include distinguishing information
Place distinguishing information at the beginning of headings, paragraphs, lists, etc. 13.8
Notate multi-page documents
Provide information about document collections (i.e., documents comprising multiple pages.). 13.9
Skip over ASCII art
Provide a means to skip over multi-line ASCII art. 13.10
Provide graphics or audio for comprehension
Supplement text with graphic or auditory presentations where they will facilitate comprehension of the page. 14.2
Use consistent design across the site
Create a style of presentation that is consistent across pages. 14.3

Images and image maps

Provide text-links for client-side image maps
Until user agents render text equivalents for client-side image map links, provide redundant text links for each active region of a client-side image map. 1.5

Tables

Provide summaries for tables
Provide summaries for tables. 5.5
Provide abbreviations for header labels
Provide abbreviations for header labels. 5.6
Provide linear text alternative for all TABLEs
Until user agents (including assistive technologies) render side-by-side text correctly, provide a linear text alternative (on the current page or some other) for all tables that lay out text in parallel, word-wrapped columns. 10.3

Forms

Include placeholder text in form controls
Until user agents handle empty controls correctly, include default, place-holding characters in edit boxes and text areas. 10.4