Accessibility - WCAG20 Validation Rules
From MemberWiki
Accessibility Home | Issue Tracker | WCAG 2.0 Rules | Rules Format 1.0 | Cache | Proposed WCAG 2.0 Techniques | Rule Review | Testsuite | Evaluation Results | Reporting Practices
Structure of the document
The accessibility validation rules enumerated in this document directly support WCAG 2.0, some with reference to the Document Object Model (DOM) and some with reference to the WAI-ARIA specification and WAI-ARIA best practices. Rules are divided according to the four principles of WCAG 2.0:
- Perceivable - Information and user interface components must be presentable to users in ways they can perceive
- Operable - User interface components and navigation must be operable
- Understandable - Information and the operation of user interface must be understandable
- Robust - Content must be robust enough that it can be interpreted reliably by a wide variety of user agents, including assistive technologies
Within each section representing a WCAG 2.0 principle is a table that contains:
- the guideline number, linked to that guideline in WCAG 2.0
- the success criterion
- the list of validation rules that apply to that criterion along with a suggested rule id for each rule
- a suggested violation level for each rule
- relevant techniques for implementing the success criterion or passing the given rules
For more information about the structure of WCAG 2.0 and an explanation of principles, guidelines, success criteria, and techniques, see WCAG 2.0 Layers of Guidance. Also, note that this document currently restricts itself to A and AA compliance for WCAG 2.0. Future work may include validation rules for AAA-level success criteria.
Although this document enumerates rules that directly support WCAG 2.0, there is no reason that the rule logic for evaluating each rule could not be reused in testing the items in other checklists. Indeed, one of the chief aims of this task force is to produce reusable rule objects that are readily-consumable and to help tool vendors avoid duplicating rule logic.
Rule ids
The rule ids used in this document are only suggestions but will be used within the group to identify particular rules mentioned on this page, in related documents, and to be found in the rules repository. Rule ids are taken from an assigned range of numeric values based upon the contributing organization. (See the Accessibility_Validation_Rule_Codification_Requirements for more information.) The importance of an id is to identify a piece of rule logic that, when executed successfully, indicates only that the test embodied by that rule has been passed. Most tool vendors and open-source tool developers will already have their own rule ids in place or an algorithm for adding other rule ids. Again, the hope is that rule logic will be reused and that the use of WCAG 2.0-oriented rule ids in this document does not discourage this practice.
Severity Levels
Only one of the following violation levels may be assigned to a rule in this document:
- Violation (V)
- Indicates a direct violation of a success criterion or undermines a technique for implementing a success criterion
- Recommendation (R)
- Indicates direct violation of or nonconformance to a best practice
- Potential Violation (PV)
- A condition for a potential violation has been met
- A manual test is required to determine if success criterion have been met
- Potential Recommendation (PR)
- A condition for a potential recommendation has been met
- A manual test is required to determine if best practice has been met
As in the case of rule ids, The above violation levels are only suggestions but will be used throughout this document to indicate the impact to a piece of content or to an application of a particular rule's failing. Tool venders are free to map these levels to their own violation levels and to add additional violation levels as they see fit.
Priority Levels
Only one of the following priorities levels may be assigned to a rule in this document. Priority levels are relative to each other for a requirement, so Priority 1 items should be addressed before Priority 2 items, and Priority 2 items before Priority 3 items.
- Priority 1 (P1)
- If there are multiple violations on the page, the Priority 1 items should be addressed first
- Priority 2 (P2)
- If there are multiple violations on a page, Priority 2 should be addressed after all Priority 1 violations have been eliminated
- Priority 3 (P3)
- If there are multiple violations on a page, Priority 3 should be addressed after all Priority 2 violations have been eliminated
WGAG 2.0 Mapping of Rules
Principle 1. Perceivable - Information and user interface components must be presentable to users in ways they can perceive.
Guideline 1.1 Text Alternatives: Provide text alternatives for any non-text content so that it can be changed into other forms people need, such as large print, braille, speech, symbols or simpler language.
| ID | Status | Priority | Severity | Rule Description |
|---|---|---|---|---|
| Requirement 1.1.1 Non-text Content | ||||
| Rule 1 | Accepted | P1 | Violation | Rule 1: Images must have valid alt text. Last updated: 2011-03-31 |
| Rule 2 | Accepted | P1 | Violation | Rule 2: Image file name is not valid alt text. Last updated: 2011-03-31 |
| Rule 3 | Accepted | P1 | Violation | Rule 3: Certain words cannot be used as a part of valid alt text Last updated: 2011-03-31 |
| Rule 4 | Accepted | P1 | Recommendation | Rule 4: Length of alt text. Last updated: 2011-03-31 |
| Rule 5 | Accepted | P1 | Violation | Rule 5: Longdesc must have valid URI. Last updated: 2011-03-31 |
| Rule 6 | Accepted | P1 | Violation | Rule 6: If an image has an alt or title attribute, it should not have a presentation role. Last updated: 2011-03-31 |
| Rule 78 | Proposed | P1 | Potential Violation | Rule 78: ALT text must describe content or purpose of image Last updated: 2011-03-31 |
Guideline 1.2 Time-based Media: Provide alternatives for time-based media.
| ID | Status | Priority | Severity | Rule Description |
|---|---|---|---|---|
| Requirement 1.2.1 Audio-only and Video-only (Prerecorded) | ||||
| Rule 79 | Proposed | P1 | Potential Violation | Rule 79: Prerecorded audio with no video or image tracks needs a text transcript which includes speaker information. Last updated: 2011-03-31 |
| Rule 80 | Proposed | P1 | Potential Violation | Rule 80: Prerecorded video with no audio track needs text or audio descriptions of the video content. Last updated: 2011-03-31 |
| Requirement 1.2.2 Captions (Prerecorded) | ||||
| Rule 81 | Proposed | P1 | Potential Violation | Rule 81: Prerecorded video with audio track needs synchronized captions. Last updated: 2011-03-31 |
| Requirement 1.2.3 Audio Description or Media Alternative (Prerecorded) | ||||
| Rule 82 | Proposed | P1 | Potential Violation | Rule 82: Prerecorded video with audio track needs a audio or text description of the video content. Last updated: 2011-03-31 |
| Requirement 1.2.4 Captions (Live) | ||||
| Rule 83 | Proposed | P1 | Potential Violation | Rule 83: Live audio of speech requires realtime captioning of the speakers. Last updated: 2011-03-31 |
| Requirement 1.2.5 Audio Description (Prerecorded) | ||||
| Rule 84 | Proposed | P1 | Potential Violation | Rule 84: Synchronized audio descriptons of video. Last updated: 2011-03-31 |
| Requirement 1.2.6 Sign Language (Prerecorded) | ||||
| Rule 85 | Proposed | P1 | Potential Violation | Rule 85: Synchronized sign language for audio track. Last updated: 2011-03-31 |
| Requirement 1.2.7 Extended Audio Description (Prerecorded) | ||||
| Rule 86 | Proposed | P1 | Potential Violation | Rule 86: Extended audio description if audio track does not provided enhough time to fully describe video content. Last updated: 2011-03-31 |
| Requirement 1.2.8 Media Alternative (Prerecorded) | ||||
| Rule 87 | Proposed | P1 | Potential Violation | Rule 87: Text alternative to audio and video content Last updated: 2011-03-31 |
| Requirement 1.2.9 Audio-only (Live) | ||||
| Rule 88 | Proposed | P1 | Potential Violation | Rule 88: Provide text alternatives to live audio Last updated: 2011-03-31 |
Guideline 1.3 Adaptable: Create content that can be presented in different ways (for example simpler layout) without losing information or structure.
| ID | Status | Priority | Severity | Rule Description |
|---|---|---|---|---|
| Requirement 1.3.1 Info and Relationships | ||||
| Rule 7 | Accepted | P1 | Violation | Rule 7: Data tables must use summary attribute. Last updated: 2011-03-31 |
| Rule 8 | Accepted | P1 | Violation | Rule 8: Data tables must use th elements Last updated: 2011-03-31 |
| Rule 9 | Accepted | P1 | Violation | Rule 9: Summary attribute content must be unique. Last updated: 2011-03-31 |
| Rule 10 | Accepted | P1 | Violation | Rule 10: Complex data tables must have ids on th elements. Last updated: 2011-03-31 |
| Rule 11 | Accepted | P1 | Violation | Rule 11: For complex data tables table ids must be unique. Last updated: 2011-03-31 |
| Rule 12 | Accepted | P1 | Violation | Rule 12: Complex data table td elements must have header attributes. Last updated: 2011-03-31 |
| Rule 13 | Accepted | P1 | Violation | Rule 13: Complex data tables header ids must be on the page. Last updated: 2011-03-31 |
| Requirement 1.3.2 Meaningful Sequence | ||||
| Rule 14 | Accepted | P1 | Potential Violation | Rule 14: Do not use nested tables for positioning. Last updated: 2011-03-31 |
| Requirement 1.3.3 Sensory Characteristics | ||||
| Rule 90 | Accepted | P1 | Potential Violation | Rule 90: Instructions and operation must be accessible and not depend on solely on color, size, location or sound . Last updated: 2011-03-31 |
Guideline 1.4 Distinguishable: Make it easier for users to see and hear content including separating foreground from background.
| ID | Status | Priority | Severity | Rule Description |
|---|---|---|---|---|
| Requirement 1.4.1 Use of Color | ||||
| Rule 89 | Proposed | P1 | Potential Violation | Rule 89: Verify that color is not used as the only visual means of conveying information, indicating an action, prompting a response, or distinguishing a visual element. Last updated: 2011-03-31 |
| Requirement 1.4.2 Audio Control | ||||
| Rule 91 | Accepted | P1 | Potential Violation | Rule 91: Verify audio does not start playing automatically when document is loaded. Last updated: 2011-03-31 |
| Requirement 1.4.3 Contrast (Minimum) | ||||
| Rule 15 | Accepted | P1 | Violation | Rule 15: Color contrast ratio must be > 3 for large text Last updated: 2011-03-31 |
| Requirement 1.4.4 Resize text | ||||
| Rule 92 | Accepted | P2 | Potential Violation | Rule 92: Verify only relative font sizes are used to define font sizes. Last updated: 2011-03-31 |
| Requirement 1.4.5 Images of Text | ||||
| Rule 93 | Accepted | P2 | Potential Violation | Rule 93: Verify that images are not being used only to stylize text. Last updated: 2011-03-31 |
| Requirement 1.4.6 Contrast (Enhanced) | ||||
| Rule 16 | Accepted | P2 | Violation | Rule 16: Color contrast ratio should be > 4.5 Last updated: 2011-03-31 |
| Requirement 1.4.7 Low or No Background Audio | ||||
| none | ||||
| Requirement 1.4.8 Visual Presentation | ||||
| none | ||||
| Requirement 1.4.9 Images of Text (No Exception) | ||||
| none | ||||
Principle 2. Operable - User interface components and navigation must be operable.
Guideline 2.1 Keyboard Accessible: Make all functionality available from a keyboard.
| ID | Status | Priority | Severity | Rule Description |
|---|---|---|---|---|
| Requirement 2.1.1 Keyboard | ||||
| Rule 18 | Accepted | P1 | Violation | Rule 18: Focusable elements with MouseOver should also have OnFocus event handlers. Last updated: 2011-03-31 |
| Rule 19 | Accepted | P1 | Violation | Rule 19: Focusable elements with an OnMouseOut should also have OnBlur event handlers. Last updated: 2011-03-31 |
| Rule 20 | Accepted | P1 | Violation | Rule 20: Every onClick event handler should be on a focusable element. Last updated: 2011-03-31 |
| Rule 21 | Accepted | P2 | Violation | Rule 21: OnChange event handler should not be used with the select element. Last updated: 2011-03-31 |
| Rule 22 | Accepted | P1 | Violation | Rule 22: onmousedown, onmouseup and onmousemove event handlers should have keyboard equivalents. Last updated: 2011-03-31 |
| Rule 73 | Accepted | P1 | Violation | Rule 73: Check that non-form and non-anchor elements with event handlers have valid roles. Last updated: 2011-03-31 |
| Rule 74 | Accepted | P1 | Violation | Rule 74: Check that elements with mouse event handlers also have key event handlers Last updated: 2011-03-31 |
| Rule 75 | Accepted | P1 | Violation | Rule 75: Check that enabled elements with ACTIVE-DESCENDANT have valid tab index Last updated: 2011-03-31 |
| Rule 76 | Accepted | P1 | Violation | Rule 76: Check that elements without 'aria-activedescendant' that have roles requiring a container have focusable children Last updated: 2011-03-31 |
| Rule 77 | Accepted | P1 | Violation | Rule 77: Check that elements without 'aria-activedescendant' that have roles requiring a container have key event handlers Last updated: 2011-03-31 |
| Requirement 2.1.2 No Keyboard Trap | ||||
| none | ||||
| Requirement 2.1.3 Keyboard (No Exception) | ||||
| Rule 23 | Accepted | P2 | Violation | Rule 23: Accesskey attribute values should be unique. Last updated: 2011-03-31 |
| Rule 24 | Accepted | P2 | Violation | Rule 24: Accesskey attribute values should not interfere with IE shortcuts. Last updated: 2011-03-31 |
Guideline 2.2 Enough Time: Provide users enough time to read and use content.
| ID | Status | Priority | Severity | Rule Description |
|---|---|---|---|---|
| Requirement 2.2.1 Timing Adjustable | ||||
| none | ||||
| Requirement 2.2.2 Pause, Stop, Hide | ||||
| Rule 25 | Accepted | P1 | Violation | Rule 25: The blink and marquee elements must not be used. Last updated: 2011-03-31 |
| Requirement 2.2.3 No Timing | ||||
| none | ||||
| Requirement 2.2.4 Interruptions | ||||
| none | ||||
| Requirement 2.2.5 Re-authenticating | ||||
| none | ||||
Guideline 2.3 Seizures: Do not design content in a way that is known to cause seizures.
| ID | Status | Priority | Severity | Rule Description |
|---|---|---|---|---|
| Requirement 2.3.1 Three Flashes or Below Threshold | ||||
| none | ||||
| Requirement 2.3.2 Three Flashes | ||||
| none | ||||
Guideline 2.4 Navigable: Provide ways to help users navigate, find content, and determine where they are.
| ID | Status | Priority | Severity | Rule Description |
|---|---|---|---|---|
| Requirement 2.4.1 Bypass Blocks | ||||
| Rule 26 | Accepted | P1 | Violation | Rule 26: Frame element must have a title attribute. Last updated: 2011-03-31 |
| Rule 27 | Accepted | P1 | Violation | Rule 27: Title attributes for frames must be unique. Last updated: 2011-03-31 |
| Rule 28 | Accepted | P2 | Recommendation | Rule 28: Frames should not be hidden or empty. Last updated: 2011-03-31 |
| Requirement 2.4.2 Page Titled | ||||
| Rule 29 | Accepted | P1 | Violation | Rule 29: Title element should not be empty. Last updated: 2011-03-31 |
| Rule 30 | Accepted | P1 | Recommendation | Rule 30: Missing or empty H1 element. Last updated: 2011-03-31 |
| Rule 31 | Accepted | P1 | Recommendation | Rule 31: H1 element content should not come only from the alt text of an image. Last updated: 2011-03-31 |
| Rule 32 | Accepted | P1 | Recommendation | Rule 32: H1 should match a subset of the words in the title element. Last updated: 2011-03-31 |
| Rule 33 | Accepted | P1 | Recommendation | Rule 33: No more than two h1 elements. Last updated: 2011-03-31 |
| Rule 61 | Accepted | P1 | Violation | Rule 61: Title content should be concise. Last updated: 2011-03-31 |
| Rule 62 | Accepted | P1 | Violation | Rule 62: Title text must contain more than one word. Last updated: 2011-03-31 |
| Requirement 2.4.3 Focus Order | ||||
| none | ||||
| Requirement 2.4.4 Link Purpose (In Context) | ||||
| Rule 34 | Accepted | P1 | Recommendation | Rule 34: Link text should be as least four 4 characters long. Last updated: 2011-03-31 |
| Rule 35 | Accepted | P1 | Violation | Rule 35: Links with the same HREF should have the same link text. Last updated: 2011-03-31 |
| Rule 36 | Accepted | P1 | Violation | Rule 36: Links that point to different HREFs should have different link text. Last updated: 2011-03-31 |
| Rule 37 | Accepted | P1 | Recommendation | Rule 37: Images should be at least 16 pixels by 16 pixels when used as links. Last updated: 2011-03-31 |
| Rule 38 | Accepted | P1 | Violation | Rule 38: Links with images and text content, the alt attribute should be unique to the text content or empty. Last updated: 2011-03-31 |
| Requirement 2.4.5 Multiple Ways | ||||
| none | ||||
| Requirement 2.4.6 Headings and Labels | ||||
| Rule 39 | Accepted | P1 | Violation | Rule 39: Headings must have text content. Last updated: 2011-03-31 |
| Rule 40 | Accepted | P1 | Recommendation | Rule 40: Text content for a headings must not come just from image alt text. Last updated: 2011-03-31 |
| Rule 41 | Accepted | P1 | Recommendation | Rule 41: Heading content should be concise. Last updated: 2011-03-31 |
| Rule 42 | Accepted | P1 | Violation | Rule 42: Heading elements should be properly nested. Last updated: 2011-03-31 |
| Rule 43 | Accepted | P1 | Recommendation | Rule 43: The content of the headings of the same level within the same section should be unique. Last updated: 2011-03-31 |
| Rule 44 | Accepted | P1 | Potential Violation | Rule 44: Heading elements (h1..h6) should be used for structuring information on the page. Last updated: 2011-03-31 |
| Requirement 2.4.7 Focus Visible | ||||
| none | ||||
| Requirement 2.4.8 Location | ||||
| none | ||||
| Requirement 2.4.9 Link Purpose (Link Only) | ||||
| none | ||||
| Requirement 2.4.10 Section Headings | ||||
| none | ||||
Principle 3. Understandable - Information and the operation of user interface must be understandable.
Guideline 3.1 Readable: Make text content readable and understandable.
| ID | Status | Priority | Severity | Rule Description |
|---|---|---|---|---|
| Requirement 3.1.1 Language of Page | ||||
| Rule 45 | Accepted | P1 | Violation | Rule 45: Each page must have a lang attribute on its html element. Last updated: 2011-03-31 |
| Rule 46 | Accepted | P1 | Violation | Rule 46: lang attribute on html element must have a valid two-character language code. Last updated: 2011-03-31 |
| Requirement 3.1.2 Language of Parts | ||||
| none | ||||
| Requirement 3.1.3 Unusual Words | ||||
| none | ||||
| Requirement 3.1.4 Abbreviations | ||||
| none | ||||
| Requirement 3.1.5 Reading Level | ||||
| none | ||||
| Requirement 3.1.6 Pronunciation | ||||
| none | ||||
Guideline 3.2 Predictable: Make Web pages appear and operate in predictable ways.
| ID | Status | Priority | Severity | Rule Description |
|---|---|---|---|---|
| Requirement 3.2.1 On Focus | ||||
| none | ||||
| Requirement 3.2.2 On Input | ||||
| none | ||||
| Requirement 3.2.3 Consistent Navigation | ||||
| none | ||||
| Requirement 3.2.4 Consistent Identification | ||||
| none | ||||
| Requirement 3.2.5 Change on Request | ||||
| none | ||||
Guideline 3.3 Input Assistance: Help users avoid and correct mistakes.
| ID | Status | Priority | Severity | Rule Description |
|---|---|---|---|---|
| Requirement 3.3.1 Error Identification | ||||
| none | ||||
| Requirement 3.3.2 Labels or Instructions | ||||
| Rule 47 | Accepted | P1 | Violation | Rule 47: Each fieldset element should contain a legend element. Last updated: 2011-03-31 |
| Rule 48 | Accepted | P1 | Recommendation | Rule 48: The label element should not encapsulate select and textarea elements. Last updated: 2011-03-31 |
| Rule 49 | Accepted | P1 | Violation | Rule 49: Each input element with type=text | password | checkbox | radio | file and each select and textarea element should either be referenced by the for attribute of a label element via its id attribute, or have a title attribute. Last updated: 2011-03-31 |
| Rule 50 | Accepted | P1 | Violation | Rule 50: Input element of type=[image] must have an alt or a title attribute. Last updated: 2011-03-31 |
| Rule 51 | Accepted | P2 | Recommendation | Rule 51: Input elements where type=[button|submit|reset] must have a value or title attribute. Last updated: 2011-03-31 |
| Rule 52 | Accepted | P1 | Violation | Rule 52: Each button element must contain content. Last updated: 2011-03-31 |
| Rule 53 | Accepted | P1 | Violation | Rule 53: Effective labels should be unique. Last updated: 2011-03-31 |
| Rule 54 | Accepted | P1 | Violation | Rule 54: Labels must have text content. Last updated: 2011-03-31 |
| Rule 55 | Accepted | P1 | Violation | Rule 55: Legends must have text content. Last updated: 2011-03-31 |
| Rule 56 | Accepted | P1 | Recommendation | Rule 56: Title attributes used for labeling form controls must have content. Last updated: 2011-03-31 |
| Rule 57 | Accepted | P1 | Violation | Rule 57: Form controls must have unique ids. Last updated: 2011-03-31 |
| Requirement 3.3.3 Error Suggestion | ||||
| none | ||||
| Requirement 3.3.4 Error Prevention (Legal, Financial, Data) | ||||
| none | ||||
| Requirement 3.3.5 Help | ||||
| none | ||||
| Requirement 3.3.6 Error Prevention (All) | ||||
| none | ||||
Principle 4. Robust - Content must be robust enough that it can be interpreted reliably by a wide variety of user agents, including assistive technologies.
Guideline 4.1 Compatibility with Assistive Technologies: Maximize compatibility with current and future user agents, including assistive technologies.
| ID | Status | Priority | Severity | Rule Description |
|---|---|---|---|---|
| Requirement 4.1.1 Parsing Content | ||||
| Rule 17 | Accepted | P2 | Violation | Rule 17: Do not use the FONT element to style text Last updated: 2011-03-31 |
| Rule 58 | Accepted | P2 | Violation | Rule 58: Do not use the B element. Last updated: 2011-03-31 |
| Rule 59 | Accepted | P2 | Violation | Rule 59: Do not use the I element. Last updated: 2011-03-31 |
| Rule 60 | Accepted | P2 | Violation | Rule 60: Do not use the U element. Last updated: 2011-03-31 |
| Rule 64 | Accepted | P1 | Violation | Rule 64: ARIA attributes have valid values Last updated: 2011-03-31 |
| Rule 65 | Accepted | P1 | Violation | Rule 65: ARIA ID references must be valid IDRefs Last updated: 2011-03-31 |
| Rule 66 | Accepted | P1 | Violation | Rule 66: ARIA attributes can only be used with certain roles Last updated: 2011-03-31 |
| Requirement 4.1.2 Name, Role, Value | ||||
| Rule 63 | Accepted | P1 | Violation | Rule 63: Check aria properties and states for valid roles and properties Last updated: 2011-03-31 |
| Rule 67 | Accepted | P1 | Violation | Rule 67: Roles must contain their required child roles Last updated: 2011-03-31 |
| Rule 68 | Accepted | P1 | Violation | Rule 68: Child roles must be contained by the proper parent role Last updated: 2011-03-31 |
| Rule 69 | Accepted | P1 | Violation | Rule 69: Required properties and states should be defined Last updated: 2011-03-31 |
| Rule 70 | Accepted | P1 | Violation | Rule 70: Required properties and states must not be empty Last updated: 2011-03-31 |
| Rule 71 | Accepted | P1 | Violation | Rule 71: Role value must be valid Last updated: 2011-03-31 |
| Rule 72 | Accepted | P1 | Violation | Rule 72: Check that 'ARIA-' attributes are valid properties and states Last updated: 2011-03-31 |
