Rulesets
The Functional Accessibility Evaluator and AInspector for Firefox use the OpenA11y Evaluation Library and Rulesets. The OpenA11y Evaluation Library rules and rulesets and are based on the Level A and AA success criteria defined in W3C Web Content Guidelines 2.0 using best practices for implementing accessibility defined in the W3C ARIA Authoring Practices and the W3C ARIA in HTML specifications.
HTML4 Legacy Techniques
WCAG 2.0 Level A and AA requirements primarily using HTML4 techniques, but allows HTML5 and ARIA accessibility techniques.
Evaluation of W3C Web Content Accessibility Guidelines 2.0 Level A and AA conformance using HTML4 accessibility techniques, but allows for the use of HTML5 and ARIA techniques. ARIA landmarks are NOT required, but if used must follow landmark and sectioning element requirements as outlined in HTML5 and ARIA. The ruleset does NOT require the use of ARIA widget roles for identifying and describing interactive elements (e.g. popup menus, grids, trees, etc...) that cannot be not described by the native semantics of HTML4 and HTML5 form control and link elements. This means the developer will need to do more manual checking and have a high level understanding of assistive technology to describe widgets typically using offscreen text and/or small images (e.g. with ALT text) to define and manage the roles, properties and states of interactive elements.
- Version: 1.2.0
- Total Rules: 126
- Required Rules: 81
- Recommended Rules: 45
HTML5 and ARIA Techniques
WCAG 2.0 Level A and AA requirements using ARIA and HTML5 accessibility features.
Evaluation of W3C Web Content Accessibility Guidelines 2.0 Level A and AA conformance using HTML5 and ARIA accessibility techniques. ARIA Landmarks are required for the identification and labeling of the sections of content on a web page. The ruleset requires the use of ARIA widget roles for identifying and describing interactive elements (e.g. popup menus, grids, trees, etc...) that cannot be not described by the native semantics of HTML5 form control and links elements.
- Version: 1.2.0
- Total Rules: 136
- Required Rules: 109
- Recommended Rules: 27
Ruleset Comparison
Guideline 1.1 Text Alternatives
1.1.1 Non-text Content (Level A)
Rule ID | Summary | Rule Category | HTML4 Legacy Techniques | HTML5 and ARIA Techniques |
---|---|---|---|---|
Image 1 | Images must have alt text | Images | Required | Required |
Image 2 | Alt text must summarize purpose | Images | Required | Required |
Image 3 | Alt text must not include filename | Images | Required | Required |
Image 4 (English) | Alt text no more than 100 characters | Images | Recommended | Recommended |
Image 5 | Verify image is decorative | Images | Required | Required |
Image 6 | Long description for complex images | Images | Required | Required |
Image 7 | Use MathML for mathematical expressions | Images | Required | Required |
Guideline 1.2 Time-based Media
1.2.1 Audio-only and Video-only (Prerecorded) (Level A)
Rule ID | Summary | Rule Category | HTML4 Legacy Techniques | HTML5 and ARIA Techniques |
---|---|---|---|---|
Audio 1 | audio must have alternative |
Audio/Video | Required | Required |
Audio 2 | object for audio must have alternative |
Audio/Video | Required | Required |
Audio 3 | embed for audio must have alternative |
Audio/Video | Required | Required |
Video 1 | video for video only must have alternative |
Audio/Video | Required | Required |
Video 2 | object for video only must have alternative |
Audio/Video | Required | Required |
Video 3 | embed for video only must have alternative |
Audio/Video | Required | Required |
1.2.2 Captions (Prerecorded) (Level A)
Rule ID | Summary | Rule Category | HTML4 Legacy Techniques | HTML5 and ARIA Techniques |
---|---|---|---|---|
Video 4 | video must have caption |
Audio/Video | Required | Required |
Video 5 | object for video must have captions |
Audio/Video | Required | Required |
Video 6 | embed for video must have captions |
Audio/Video | Required | Required |
1.2.3 Audio Description or Media Alternative (Prerecorded) (Level A)
Rule ID | Summary | Rule Category | HTML4 Legacy Techniques | HTML5 and ARIA Techniques |
---|---|---|---|---|
Video 7 | video element must have audio description. |
Audio/Video | Required | Required |
Video 8 | object for video must have audio description. |
Audio/Video | Required | Required |
Video 9 | embed for video must have audio description |
Audio/Video | Required | Required |
Guideline 1.3 Adaptable
1.3.1 Info and Relationships (Level A)
Rule ID | Summary | Rule Category | HTML4 Legacy Techniques | HTML5 and ARIA Techniques |
---|---|---|---|---|
Heading 5 | Headings must be properly nested | Headings | Required | Required |
Heading 6 | Headings must have text content | Headings | Recommended | Recommended |
Heading 7 | First landmark heading h2 |
Headings | - | Recommended |
Heading 8 | Headings nested in landmarks | Headings | - | Required |
Landmark 10 | navigation landmark: restrictions |
Landmarks | Recommended | Required |
Landmark 11 | main landmark: must be top-level |
Landmarks | Recommended | Required |
Landmark 12 | contentinfo landmark: must be top-level |
Landmarks | Recommended | Required |
Landmark 13 | contentinfo landmark: restrictions |
Landmarks | Recommended | Required |
Landmark 14 | search landmark: restrictions |
Landmarks | Recommended | Required |
Landmark 15 | form landmark: restrictions |
Landmarks | Recommended | Required |
Landmark 16 | region landmark must have accessible name |
Landmarks | Recommended | Required |
Landmark 17 | Landmarks must be uniquely identifiable | Landmarks | Recommended | Required |
Landmark 18 | Landmarks must identify content regions | Landmarks | Required | Required |
Landmark 19 | complementary landmark: must be top level |
Landmarks | Recommended | Required |
Landmark 2 | All content must be contained in landmarks | Landmarks | - | Required |
Landmark 8 | banner landmark: must be top-level |
Landmarks | Recommended | Required |
Landmark 9 | banner landmark: restrictions |
Landmarks | Recommended | Required |
List 1 | Use semantic markup for lists | Styling/Content | Required | Required |
Role 1 | main element role semantics. (Deprecated) |
Styling/Content | Recommended | Recommended |
Role 10 | Overriding h1-h6 role semantics. (Deprecated) |
Headings | Recommended | Recommended |
Role 2 | body element role semantics. (Deprecated) |
Styling/Content | Recommended | Recommended |
Role 4 | article element role semantics. (Deprecated) |
Styling/Content | Recommended | Recommended |
Role 5 | section element role semantics. (Deprecated) |
Styling/Content | Recommended | Recommended |
Role 6 | Do not override nav element semantics. (Deprecated) |
Styling/Content | Recommended | Recommended |
Role 7 | aside element role semantics. (Deprecated) |
Styling/Content | Recommended | Recommended |
Role 8 | Do not override header element role . (Deprecated) |
Styling/Content | Recommended | Recommended |
Role 9 | Do not override footer element role . (Deprecated) |
Styling/Content | Recommended | Recommended |
Table 1 | Data cells must have row/column headers | Tables | Required | Required |
Table 3 | Data tables must have description | Tables | Recommended | Recommended |
Table 4 | Data tables must have unique names | Tables | Required | Required |
Table 5 | Identify table markup as data or layout | Tables | Recommended | Required |
Table 6 | Header cells must be th elements |
Tables | Recommended | Required |
Table 7 | Data cells must use headers attribute |
Tables | Required | Required |
Table 8 | Name must be different than description | Tables | - | Required |
1.3.2 Meaningful Sequence (Level A)
Rule ID | Summary | Rule Category | HTML4 Legacy Techniques | HTML5 and ARIA Techniques |
---|---|---|---|---|
Layout 1 | Layout tables must have meaningful sequence | Tables | Required | Required |
Layout 2 | Do not nest layout tables | Styling/Content | Recommended | Recommended |
Layout 3 | Verify aria-flowto supports reading order |
Styling/Content | Required | Required |
Order 1 | Reading order: CSS positioning | Styling/Content | Required | Required |
1.3.3 Sensory Characteristics (Level A)
Rule ID | Summary | Rule Category | HTML4 Legacy Techniques | HTML5 and ARIA Techniques |
---|---|---|---|---|
Sensory 1 | Not only shape, size and location | Styling/Content | Required | Required |
Guideline 1.4 Distinguishable
1.4.1 Use of Color (Level A)
Rule ID | Summary | Rule Category | HTML4 Legacy Techniques | HTML5 and ARIA Techniques |
---|---|---|---|---|
Color 2 | Use of color | Styling/Content | Required | Required |
1.4.2 Audio Control (Level A)
Rule ID | Summary | Rule Category | HTML4 Legacy Techniques | HTML5 and ARIA Techniques |
---|---|---|---|---|
Audio 4 | Pause, stop or mute audio | Audio/Video | Required | Required |
1.4.3 Contrast (Minimum) (Level AA)
Rule ID | Summary | Rule Category | HTML4 Legacy Techniques | HTML5 and ARIA Techniques |
---|---|---|---|---|
Color 1 | Text must exceed CCR threshold | Styling/Content | Required | Required |
1.4.4 Resize text (Level AA)
Rule ID | Summary | Rule Category | HTML4 Legacy Techniques | HTML5 and ARIA Techniques |
---|---|---|---|---|
Resize 1 | Resize text content | Styling/Content | Required | Required |
Guideline 2.1 Keyboard Accessible
2.1.1 Keyboard (Level A)
Rule ID | Summary | Rule Category | HTML4 Legacy Techniques | HTML5 and ARIA Techniques |
---|---|---|---|---|
Keyboard 1 | Widget roles require keyboard support | Keyboard Support | Required | Required |
Keyboard 2 | Interactive functionality must be keyboard operable | Keyboard Support | Required | Required |
Widget 16 | Closed shadow DOM requires manual check. | Widgets/Scripting | Required | Required |
2.1.2 No Keyboard Trap (Level A)
Rule ID | Summary | Rule Category | HTML4 Legacy Techniques | HTML5 and ARIA Techniques |
---|---|---|---|---|
Keyboard 3 | No keyboard trap | Keyboard Support | Required | Required |
Guideline 2.2 Enough Time
2.2.1 Timing Adjustable (Level A)
Rule ID | Summary | Rule Category | HTML4 Legacy Techniques | HTML5 and ARIA Techniques |
---|---|---|---|---|
Timing 1 | Control time limits | Timing | Required | Required |
2.2.2 Pause, Stop, Hide (Level A)
Rule ID | Summary | Rule Category | HTML4 Legacy Techniques | HTML5 and ARIA Techniques |
---|---|---|---|---|
Timing 2 | Control moving, blinking or auto-updating content | Timing | Required | Required |
Guideline 2.3 Seizures and Physical Reactions
2.3.1 Three Flashes or Below Threshold (Level A)
Rule ID | Summary | Rule Category | HTML4 Legacy Techniques | HTML5 and ARIA Techniques |
---|---|---|---|---|
HTML 2 | Replace marquee elements |
Styling/Content | Required | Required |
Timing 3 | Flashing limits | Timing | Required | Required |
Guideline 2.4 Navigable
2.4.1 Bypass Blocks (Level A)
Rule ID | Summary | Rule Category | HTML4 Legacy Techniques | HTML5 and ARIA Techniques |
---|---|---|---|---|
Bypass 1 | Skip to main content link | Keyboard Support | Recommended | Recommended |
Frame 1 | frame must have accessible name |
Styling/Content | Required | Required |
Frame 2 | iframe must have accessible name |
Styling/Content | Required | Required |
Heading 1 | Page must have h1 element |
Headings | Recommended | Recommended |
Landmark 1 | main landmark: at least one |
Landmarks | - | Required |
Landmark 3 | navigation landmark: at least one |
Landmarks | - | Required |
Landmark 4 | banner landmark: identifies branding content |
Landmarks | - | Required |
Landmark 5 | banner landmark: no more than one |
Landmarks | Recommended | Required |
Landmark 6 | contentinfo landmark: identifies admin content |
Landmarks | - | Required |
Landmark 7 | contentinfo landmark: no more than one |
Landmarks | Recommended | Required |
2.4.2 Page Titled (Level A)
Rule ID | Summary | Rule Category | HTML4 Legacy Techniques | HTML5 and ARIA Techniques |
---|---|---|---|---|
Title 1 | title must identify website and page |
Site Navigation | Required | Required |
Title 2 | h1 must match part of the title |
Site Navigation | - | - |
2.4.3 Focus Order (Level A)
Rule ID | Summary | Rule Category | HTML4 Legacy Techniques | HTML5 and ARIA Techniques |
---|---|---|---|---|
Focus 1 | Focus order must be meaningful | Keyboard Support | Required | Required |
2.4.4 Link Purpose (In Context) (Level A)
Rule ID | Summary | Rule Category | HTML4 Legacy Techniques | HTML5 and ARIA Techniques |
---|---|---|---|---|
Link 1 | Link text must describe the link target | Links | Required | Required |
Link 2 | Link text must be unique | Links | Recommended | Recommended |
2.4.5 Multiple Ways (Level AA)
Rule ID | Summary | Rule Category | HTML4 Legacy Techniques | HTML5 and ARIA Techniques |
---|---|---|---|---|
Navigation 1 | At least two ways of finding content | Site Navigation | Recommended | Required |
2.4.6 Headings and Labels (Level AA)
Rule ID | Summary | Rule Category | HTML4 Legacy Techniques | HTML5 and ARIA Techniques |
---|---|---|---|---|
Control 10 | Labels must be unique | Forms | Required | Required |
Control 11 | Submit and reset button labels must be unique | Forms | Required | Required |
Heading 2 | h1 must be in main or banner landmark |
Headings | Recommended | Recommended |
Heading 3 | Sibling headings must be unique | Headings | Recommended | Recommended |
List 2 | Provide list labels when appropriate | Styling/Content | Recommended | Recommended |
Table 2 | Data tables must have name | Tables | Recommended | Recommended |
Widget 12 | Widget labels must be descriptive | Widgets/Scripting | Required | Required |
2.4.7 Focus Visible (Level AA)
Rule ID | Summary | Rule Category | HTML4 Legacy Techniques | HTML5 and ARIA Techniques |
---|---|---|---|---|
Focus 2 | Focus must be visible | Keyboard Support | Required | Required |
Guideline 3.1 Readable
3.1.1 Language of Page (Level A)
Rule ID | Summary | Rule Category | HTML4 Legacy Techniques | HTML5 and ARIA Techniques |
---|---|---|---|---|
Language 1 | Page must use language code | Styling/Content | Required | Required |
3.1.2 Language of Parts (Level AA)
Rule ID | Summary | Rule Category | HTML4 Legacy Techniques | HTML5 and ARIA Techniques |
---|---|---|---|---|
Language 2 | Identify language changes | Styling/Content | Required | Required |
Guideline 3.2 Predictable
3.2.1 On Focus (Level A)
Rule ID | Summary | Rule Category | HTML4 Legacy Techniques | HTML5 and ARIA Techniques |
---|---|---|---|---|
Focus 3 | Target focus must be in content window | Links | Required | Required |
3.2.2 On Input (Level A)
Rule ID | Summary | Rule Category | HTML4 Legacy Techniques | HTML5 and ARIA Techniques |
---|---|---|---|---|
Focus 4 | select must not change context |
Forms | Required | Required |
Focus 5 | Forms submitted using buttons | Forms | Required | Required |
Focus 6 | checkbox/radio buttons changing context. |
Forms | - | - |
3.2.3 Consistent Navigation (Level AA)
Rule ID | Summary | Rule Category | HTML4 Legacy Techniques | HTML5 and ARIA Techniques |
---|---|---|---|---|
Navigation 2 | Consistent ordering of landmarks | Site Navigation | Recommended | Required |
Navigation 3 | Consistent ordering of h1 and h2 labels |
Site Navigation | Required | Required |
3.2.4 Consistent Identification (Level AA)
Rule ID | Summary | Rule Category | HTML4 Legacy Techniques | HTML5 and ARIA Techniques |
---|---|---|---|---|
Navigation 4 | Consistent labeling of landmarks | Site Navigation | Recommended | Required |
Navigation 5 | Consistent h1 and h2 page section labels |
Site Navigation | Required | Required |
Guideline 3.3 Input Assistance
3.3.1 Error Identification (Level A)
Rule ID | Summary | Rule Category | HTML4 Legacy Techniques | HTML5 and ARIA Techniques |
---|---|---|---|---|
Error 1 | Information on invalid values | Forms | Required | Required |
3.3.2 Labels or Instructions (Level A)
Rule ID | Summary | Rule Category | HTML4 Legacy Techniques | HTML5 and ARIA Techniques |
---|---|---|---|---|
Control 1 | Form controls must have labels | Forms | Required | Required |
Control 2 | Image button must have alt. content | Forms | Required | Required |
Control 3 | Radio buttons must have grouping label | Forms | Required | Required |
Control 4 | button s must have content |
Forms | Required | Required |
Control 6 | label must reference control |
Forms | Required | Required |
Control 7 | label must have content |
Forms | Required | Required |
Control 8 | fieldset must have one legend |
Forms | Required | Required |
Control 9 | Verify title is the label. |
Forms | Required | Required |
3.3.3 Error Suggestion (Level AA)
Rule ID | Summary | Rule Category | HTML4 Legacy Techniques | HTML5 and ARIA Techniques |
---|---|---|---|---|
Error 2 | Required form controls | Forms | Required | Required |
Error 3 | Required widgets | Widgets/Scripting | - | Required |
Error 4 | Error correction suggestions | Forms | Required | Required |
3.3.4 Error Prevention (Legal, Financial, Data) (Level AA)
Rule ID | Summary | Rule Category | HTML4 Legacy Techniques | HTML5 and ARIA Techniques |
---|---|---|---|---|
Error 5 | Prevent errors | Forms | Required | Required |
Guideline 4.1 Compatible
4.1.1 Parsing (Level A)
Rule ID | Summary | Rule Category | HTML4 Legacy Techniques | HTML5 and ARIA Techniques |
---|---|---|---|---|
Control 5 | id must be unique |
Forms | Required | Required |
HTML 1 | Replace b and i elements |
Styling/Content | - | - |
Widget 15 | Remove deprecated ARIA attributes. | Widgets/Scripting | Recommended | Recommended |
4.1.2 Name, Role, Value (Level A)
Rule ID | Summary | Rule Category | HTML4 Legacy Techniques | HTML5 and ARIA Techniques |
---|---|---|---|---|
HTML 3 | Role is not allowed | Widgets/Scripting | Required | Required |
Role 11 | li element group item semantics. (Deprecated) |
Styling/Content | Recommended | Recommended |
Role 12 | a[href] element role semantics. (Deprecated) |
Links | Recommended | Recommended |
Role 13 | select element role semantics. (Deprecated) |
Forms | Recommended | Recommended |
Role 14 | textarea element role semantics. (Deprecated) |
Forms | Recommended | Recommended |
Role 3 | ol and ul role grouping semantics. (Deprecated) |
Styling/Content | Recommended | Recommended |
Widget 1 | Widgets must have label | Widgets/Scripting | Required | Required |
Widget 10 | Value in range | Widgets/Scripting | Required | Required |
Widget 11 | Elements with event handlers must have roles | Widgets/Scripting | Required | Required |
Widget 13 | Role does not support accessible name. | Widgets/Scripting | Recommended | Required |
Widget 14 | Verify appropriate use of live region | Widgets/Scripting | Required | Required |
Widget 2 | onClick event handlers must have role |
Widgets/Scripting | - | Required |
Widget 3 | role must be valid |
Widgets/Scripting | Required | Required |
Widget 4 | ARIA values must be valid | Widgets/Scripting | Required | Required |
Widget 5 | Attributes that start with aria- must be defined. |
Widgets/Scripting | Required | Required |
Widget 6 | Widgets must have properties | Widgets/Scripting | Required | Required |
Widget 7 | Widgets must have owned elements | Widgets/Scripting | Required | Required |
Widget 8 | Role must have parent | Widgets/Scripting | Required | Required |
Widget 9 | Only one owner | Widgets/Scripting | Required | Required |