Accessibility Guidelines for Drupal 7: WCAG 2.0 & ATAG 1.0

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
You are viewing a wiki page. You are welcome to join the group and then edit it. Be bold!

Would like to get some folks contributing to this checklist for Drupal Core. Would be nice if D7 was WCAG 2.0 compliant out of the box. We've certainly made some advances with D7, but we need to evaluate it!

Drupal Core Accessibility Guidelines

Because Drupal is a web content authoring tool it must also meet Authoring Tool Accessibility Guidelines.

Drupal Themeing Accessibility Guidelines

This is a great resource for Drupal Theming brought to you by the nice folks at WebAIM.

WCAG 2.0 Checklist

IMPORTANT: The following is NOT WCAG 2.0. It is, however, a simple checklist that presents the principles and techniques of WCAG 2.0 in a more user-friendly, understandable format. The language has been significantly changed and simplified from the official WCAG 2.0 specification to make it more easily tested and verified for web pages. While this checklist may be very handy in pursuing accessibility and WCAG conformance, please reference WCAG 2.0 documentation to verify actual conformance.

Perceivable

Web content is made available to the senses - sight, hearing, and/or touch

Guideline 1.1

Text Alternatives: Provide text alternatives for any non-text content

Success Criteria Recommendations
1.1.1 Non-text Content
(Level A)
  • All images, form image buttons, and image map hot spots have appropriate, equivalent alternative text. - Core themes need to be checked
  • Images that do not convey content, are decorative, or with content that is already conveyed in text are given null alt text (alt="") or implemented as CSS backgrounds. All linked images have descriptive alternative text. - Core themes need to be checked
  • Equivalent alternatives to complex images are provided in context or on a separate (linked and/or referenced via longdesc) page. - NA
  • Form buttons have a descriptive value. - Forms have labels
  • Form inputs have associated text labels or, if labels cannot be used, a descriptive title attribute. - Forms have labels
  • Embedded multimedia is identified via accessible text. - NA
  • Frames are appropriately titled. - NA

Guideline 1.2

Time-based Media: Provide alternatives for time-based media

NOTE: If the audio or video is designated as an alternative to web content (e.g., an audio or sign language version of a web page, for example), then the web content itself serves as the alternative.

Success Criteria Recommendations
1.2.1 Prerecorded Audio-only and Video-only
(Level A)
  • A descriptive text transcript (including all relevant visual and auditory clues and indicators) is provided for non-live, web-based audio (audio podcasts, MP3 files, etc.). - NA
  • A text or audio description is provided for non-live, web-based video-only (e.g., video that has no audio track). - NA
1.2.2 Captions (Prerecorded)
(Level A)
  • Synchronized captions are provided for non-live, web-based video (YouTube videos, etc.) - NA
1.2.3 Audio Description or Media Alternative (Prerecorded)
(Level A)
1.2.4 Captions (Live)
(Level AA)
  • Synchronized captions are provided for all live multimedia that contains audio (audio-only broadcasts, web casts, video conferences, Flash animations, etc.) - NA
1.2.5 Audio Description (Prerecorded)
(Level AA)
  • Audio descriptions are provided for all video content
    NOTE: Only required if the video conveys content visually that is not available in the default audio track.
    - NA
1.2.6 Sign Language (Prerecorded)
(Level AAA)
  • A sign language video is provided for all media content that contains audio. - NA
1.2.7 Extended Audio Description (Prerecorded)
(Level AAA)
  • When an audio description track cannot be added to video due to audio timing (e.g., no pauses in the audio), an alternative version of the video with pauses that allow audio descriptions is provided. - NA
1.2.8 Media Alternative (Prerecorded)
(Level AAA)
  • A descriptive text transcript is provided for all pre-recorded media that has a video track. - NA
1.2.9 Audio-only (Live)
(Level AAA)
  • A descriptive text transcript (e.g., the script of the live audio) is provided for all live content that has audio. - NA

Guideline 1.3

Adaptable: Create content that can be presented in different ways (for example simpler layout) without losing information or structure

Success Criteria Recommendations
1.3.1 Info and Relationships
(Level A)
  • Semantic markup is used to designate headings (<h1>), lists (<ul>, <ol>, and <dl>), emphasized or special text (<strong>, <code>, <abbr>, <blockquote>, for example), etc. Semantic markup is used appropriately. - lists need to be enhanced
  • Tables are used to markup tabular data. Where necessary, data cells are associated with their headers. Data table captions and summaries are used where appropriate.
  • Text labels are associated with form input elements. Related form elements are grouped with fieldset/legend. - Check fieldset/legend in core
1.3.2 Meaningful Sequence
(Level A)
1.3.3 Sensory Characteristics
(Level A)
  • Instructions do not rely upon shape, size, or visual location (e.g., "Click the square icon to continue" or "Instructions are in the right-hand column"). - NA
  • Instructions do not rely upon sound (e.g., "A beeping sound indicates you may continue."). - NA

Guideline 1.4

Distinguishable: Make it easier for users to see and hear content including separating foreground from background

Success Criteria Recommendations
1.4.1 Use of Color
(Level A)
  • Color is not used as the sole method of conveying content or distinguishing visual elements. - Red * for mandatory fields
  • Links are distinguishable from surrounding text. If color alone is used to distinguish links, an additional differentiation (e.g., it becomes underlined) is provided when it receives focus. - Core themes need to be checked
1.4.2 Audio Control
(Level A)
  • A mechanism is provided to stop, pause, mute, or adjust volume for audio that automatically plays on a page for more than 3 seconds.. - NA
1.4.3 Contrast (Minimum)
(Level AA)
  • Text and images of text have a contrast ratio of at least 4.5:1.
  • Large text (over 18 point or 14 point bold) has a contrast ratio of at least 3:1 - Color Module issue
1.4.4 Resize text
(Level AA)
  • The page is readable and functional when the text size is doubled. - easy add-on
1.4.5 Images of Text
(Level AA)
  • If the same visual presentation can be made using text alone, an image is not used to present that text. - NA
1.4.6 Contrast (Enhanced)
(Level AAA)
  • Text and images of text have a contrast ratio of at least 7:1. - Color Module issue
  • Large text (over 18 point or 14 point bold) has a contrast ratio of at least 4.5:1 - Core themes need to be checked
1.4.7 Low or No Background Audio
(Level AAA)
  • Audio of speech has no or very low background noise so the speech is easily distinguished. - NA
1.4.8 Visual Presentation
(Level AAA)
  • Blocks of text over one sentence in length:
    • Are no more than 80 characters wide. - NA
    • Are NOT fully justified (aligned to both the left and the right margins). - NA
    • Have adequate line spacing (at least 1/2 the height of the text) and paragraph spacing (1.5 times line spacing). - Core themes need to be checked
    • Have a specified foreground and background color. These can be applied to specific elements or to the page as a whole using CSS (and thus inherited by all other elements). - Core themes need to be checked
    • Do NOT require horizontal scrolling when the text size is doubled. - Core themes need to be checked
1.4.9 Images of Text (No Exception)
(Level AAA)
  • Text is used within an image only for decoration (image does not convey content) OR when the information cannot be presented with text alone. - NA

Operable

Interface forms, controls, and navigation are operable

Guideline 2.1

Keyboard Accessible: Make all functionality available from a keyboard

Success Criteria Recommendations
2.1.1 Keyboard
(Level A)
  • All page functionality is available using the keyboard, unless the functionality cannot be accomplished in any known way using a keyboard (e.g., free hand drawing). - Core need to be checked
  • Page-specified shortcut keys and accesskeys (accesskey should typically be avoided) do not conflict with existing browser and screen reader shortcuts. - pushbutton theme uses accesskeys (isn't that theme being removed anyways?)
2.1.2 No Keyboard Trap
(Level A)
  • Keyboard focus is never locked or trapped at one particular page element. The user can navigate to and from all navigable page elements using only a keyboard. - Core need to be checked
2.1.3 Keyboard (No Exception)
(Level AAA)
  • All page functionality is available using the keyboard. - Core need to be checked

Guideline 2.2

Enough Time: Provide users enough time to read and use content

Success Criteria Recommendations
2.2.1 Timing Adjustable
(Level A)
  • If a page or application has a time limit, the user is given options to turn off, adjust, or extend that time limit. This is not a requirement for real-time events (e.g., an auction), where the time limit is absolutely required, or if the time limit is longer than 20 hours. - NA
2.2.2 Pause, Stop, Hide
(Level A)
  • Automatically moving, blinking, or scrolling content that lasts longer than 3 seconds can be paused, stopped, or hidden by the user. Moving, blinking, or scrolling can be used to draw attention to or highlight content as long as it lasts less than 3 seconds. - NA
  • Automatically updating content (e.g., automatically redirecting or refreshing a page, a news ticker, AJAX updated field, a notification alert, etc.) can be paused, stopped, or hidden by the user or the user can manually control the timing of the updates. - NA
2.2.3 No Timing
(Level AAA)
  • The content and functionality has no time limits or constraints. - NA
2.2.4 Interruptions
(Level AAA)
  • Interruptions (alerts, page updates, etc.) can be postponed or suppressed by the user. - Core need to be checked
2.2.5 Re-authenticating
(Level AAA)
  • If an authentication session expires, the user can re-authenticate and continue the activity without losing any data from the current page. - Core need to be checked

Guideline 2.3

Seizures: Do not design content in a way that is known to cause seizures

Success Criteria Recommendations
2.3.1 Three Flashes or Below Threshold
(Level A)
2.3.2 Three Flashes
(Level AAA)
  • No page content flashes more than 3 times per second. - NA

Guideline 2.4

Navigable: Provide ways to help users navigate, find content, and determine where they are

Success Criteria Recommendations
2.4.1 Bypass Blocks
(Level A)
  • A link is provided to skip navigation and other page elements that are repeated across web pages. - Patch suggested here http://drupal.org/node/386462
  • If a page has a proper heading structure, this may be considered a sufficient technique instead of a "Skip to main content" link. Note that navigating by headings is not yet supported in all browsers. - partial patch suggested here http://drupal.org/node/364219
  • If a page uses frames and the frames are appropriately titled, this is a sufficient technique for bypassing individual frames. - NA
2.4.2 Page Titled
(Level A)
  • The web page has a descriptive and informative page title. - Easy
2.4.3 Focus Order
(Level A)
  • The navigation order of links, form elements, etc. is logical and intuitive. - NA
2.4.4 Link Purpose (In Context)
(Level A)
  • The purpose of each link (or form image button or image map hotspot) can be determined from the link text alone, or from the link text and it's context (e.g., surrounding paragraph, list item, table cell, or table headers). - NA
  • Links (or form image buttons) with the same text that go to different locations are readily distinguishable. - Needs work http://groups.drupal.org/node/17627
2.4.5 Multiple Ways
(Level AA)
  • Multiple ways are available to find other web pages on the site - at least two of: a list of related pages, table of contents, site map, site search, or list of all available web pages. - Search in core, site map modules available
2.4.6 Headings and Labels
(Level AA)
  • Page headings and labels for form and interactive controls are informative. Avoid duplicating heading (e.g., "More Details") or label text (e.g., "First Name") unless the structure provides adequate differentiation between them. - Core need to be checked
2.4.7 Focus Visible
(Level AA)
  • It is visually apparent which page element has the current keyboard focus (i.e., as you tab through the page, you can see where you are). - For most, but core need to be checked
2.4.8 Location
(Level AAA)
  • If a web page is part of a sequence of pages or within a complex site structure, an indication of the current page location is provided, for example, through breadcrumbs or specifying the current step in a sequence (e.g., "Step 2 of 5 - Shipping Address") - NA.
2.4.9 Link Purpose (Link Only)
(Level AAA)
  • The purpose of each link (or form image button or image map hotspot) can be determined from the link text alone. - NA
  • There are no links (or form image buttons) with the same text that go to different locations. - Needs work http://groups.drupal.org/node/17627
2.4.10 Section Headings
(Level AAA)
  • Beyond providing an overall document structure, individual sections of content are designated using headings, where appropriate. - NA

Understandable

Content and interface are understandable

Guideline 3.1

Readable: Make text content readable and understandable

Success Criteria Recommendations
3.1.1 Language of Page
(Level A)
  • The language of the page is identified using the HTML lang attribute (<html lang="en">, for example). - All good in core
3.1.2 Language of Parts
(Level AA)
  • When appropriate, the language of sections of content that are a different language are identified, for example, by using the lang attribute (<blockquote lang="es")> - Not sure how to do this with multilingual content items in Drupal
3.1.3 Unusual Words
(Level AAA)
  • Words that may be ambiguous, unknown, or used in a very specific way are defined through adjacent text, a definition list, a glossary, or other suitable method. - NA
3.1.4 Abbreviations
(Level AAA)
  • Expansions for abbreviations are provided by expanding or explaining the definition the first time it is used, using the <abbr> element, or linking to a definition or glossary. NOTE: WCAG 2.0 gives no exception for regularly understood abbreviations (e.g., HTML on a web design web site must always be expanded). - NA
3.1.5 Reading Level
(Level AAA)
  • A more understandable alternative is provided for content that is more advanced than can be reasonably read by a person with roughly 9 years of primary education. - NA
3.1.6 Pronunciation
(Level AAA)
  • If the pronunciation of a word is vital to understanding that word, its pronunciation is provided immediately following the word or via a link or glossary. - NA

Guideline 3.2

Predictable: Make Web pages appear and operate in predictable ways

Success Criteria Recommendations
3.2.1 On Focus
(Level A)
  • When a page element receives focus, it does not result in a substantial change to the page, the spawning of a pop-up window, an additional change of keyboard focus, or any other change that could confuse or disorient the user. - Core should be tested
3.2.2 On Input
(Level A)
  • When a user inputs information or interacts with a control, it does not result in a substantial change to the page, the spawning of a pop-up window, an additional change of keyboard focus, or any other change that could confuse or disorient the user unless the user is informed of the change ahead of time. - Core should be tested
3.2.3 Consistent Navigation
(Level AA)
  • Navigation links that are repeated on web pages do not change order when navigating through the site. - NA
3.2.4 Consistent Identification
(Level AA)
  • Elements that have the same functionality across multiple web pages are consistently identified. For example, a search box at the top of the site should always be labeled the same way. - Blocks make this quite consistent
3.2.5 Change on Request
(Level AAA)
  • Substantial changes to the page, the spawning of pop-up windows, uncontrolled changes of keyboard focus, or any other change that could confuse or disorient the user must be initiated by the user. Alternatively, the user is provided an option to disable such changes. - NA

Guideline 3.3

Input Assistance: Help users avoid and correct mistakes

Success Criteria Recommendations
3.3.1 Error Identification
(Level A)
  • Required form elements or form elements that require a specific format, value, or length provide this information within the element's label (or if a label is not provided, within the element's title attribute). - Needs work - title tag available within input, but only used in search block
  • If utilized, form validation cues and errors (client-side or server-side) alert users to errors in an efficient, intuitive, and accessible manner. The error is clearly identified, quick access to the problematic element is provided, and user is allowed to easily fix the error and resubmit the form. - Core should be tested
3.3.2 Labels or Instructions
(Level A)
  • Sufficient labels, cues, and instructions for required interactive elements are provided via instructions, examples, properly positioned form labels, and/or fieldsets/legends. - Core should be tested
3.3.3 Error Suggestion
(Level AA)
  • If an input error is detected (via client-side or server-side validation), provide suggestions for fixing the input as soon as possible and reasonably able to do so. - Core should be tested
3.3.4 Error Prevention (Legal, Financial, Data)
(Level AA)
  • If the user can change or delete legal, financial, or test data, the changes/deletions are reversible, verified, or confirmed. - NA
3.3.5 Help
(Level AAA)
  • If the user can submit, change, or delete information, the information is reversible, verified, or confirmed. - Core should be tested

Robust

Content can be used reliably by a wide variety of user agents, including assistive technologies

Guideline 4.1

Compatible: Maximize compatibility with current and future user agents, including assistive technologies

Success Criteria Recommendations
4.1.1 Parsing
(Level A)
  • Significant HTML/XHTML validation/parsing errors are avoided. Check at http://validator.w3.org/ - All Core themes need to be checked
4.1.2 Name, Role, Value
(Level A)
  • Markup is used in a way that facilitates accessibility. This includes following the HTML/XHTML specifications and using forms, form labels, frame titles, etc. appropriately. - Yes

Todo: This markup really needs to be simplified

Accessibility

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week