Below is a copy of the ruleset used by the OAA with comments by David MacDonald with an opinion on whether they are required under WCAG2, whether they should not be required under WCAG 2 or whether they have already been descussed and decided by the WCAG working group during or after the WCAG 2 development. These rules are a great source of proposed WCAG failures, as well as a good source of discussion for Best Practices. The original RuleSet can be found here.
Rule ID | Rule Summary | Level | SC | HTML4 Techniques | HTML5 and ARIA Techniques | DavidSet | David MacDonald Comments |
---|---|---|---|---|---|---|---|
Landmark 1 | main landmark: at least one |
A | 2.4.1 | - | Required | Only if flagged recommended | Landmarks are a sufficient way to meet 2.4.1. However, only if there is no other mechanism to bypass blocks (such as headings or skipNav) would the page fail 2.4.1. |
Landmark 10 | navigation landmark: restrictions |
A | 1.3.1 | Recommended | Required | Only if flagged recommended | Can only be recommended as a WCAG best practice currently. I'll try to introduce failure see list of take aways below. |
Landmark 11 | main landmark: must be top-level |
A | 1.3.1 | Recommended | Required | Only if flagged recommended | Can only be recommended as a WCAG best practice currently. I'll try to introduce failure see list of take aways below. |
Landmark 12 | contentinfo landmark: must be top-level |
A | 1.3.1 | Recommended | Required | Only if flagged recommended | Can only be recommended as a WCAG best practice currently. I'll try to introduce failure see list of take aways below. |
Landmark 13 | complementary landmark: must be top level |
A | 1.3.1 | Recommended | Required | Only if flagged recommended | Can only be recommended as a WCAG best practice currently. Complementary might be in the main element. I'll try to introduce failure see list of take aways below. |
Landmark 14 | search landmark: restrictions |
A | 1.3.1 | Recommended | Required | Only if flagged recommended | Can only be recommended as a WCAG best practice currently. I'll try to introduce failure see list of take aways below. |
Landmark 15 | form landmark: restrictions |
A | 1.3.1 | Recommended | Required | Only if flagged recommended | Can only be recommended as a WCAG best practice currently. I'll try to introduce failure see list of take aways below. |
Landmark 16 | region landmark must have accessible name |
A | 1.3.1 | Recommended | Required | Only if flagged recommended | Can only be recommended as a WCAG best practice currently. I'll try to introduce failure see list of take aways below. |
Landmark 17 | Landmarks must be uniquely identifiable | A | 1.3.1 | Recommended | Required | No | Can only be recommended as a WCAG best practice currently. |
Landmark 18 | Landmarks must identify content regions | A | 1.3.1 | Required | Required | Yes | Can only be recommended as a WCAG best practice currently. |
Landmark 2 | All content must be contained in landmarks | A | 1.3.1 | - | Required | Only if flagged recommended | Landmarks didn't exist when 1.3.1 was written. 1.3.1 can be met in many ways, including having <p> for paragraph content, <h1-6> for headings.. Landmarks are one more way to satisfy and add structure. One could try to get the group to introduce a failure, but I doubt there would be much uptake. Currently it could only be best practice. Screen reader users like Landmarks to jump to content, but do not expect to be informed when leaving that section. There are may reasons why not all content might not be in a landmark, including mash-up pages |
Landmark 3 | navigation landmark: at least one |
A | 2.4.1 | - | Required | Only if flagged recommended | Can only be recommended as a WCAG best practice currently. |
Landmark 4 | banner landmark: for branding content |
A | 2.4.1 | - | Required | Only if flagged recommended | Can only be recommended as a WCAG best practice currently. I'll try to introduce failure see list of take aways below. |
Landmark 5 | banner landmark: no more than one |
A | 2.4.1 | Recommended | Required | Only if flagged recommended | Can only be recommended as a WCAG best practice currently. |
Landmark 6 | contentinfo landmark: for admin content |
A | 2.4.1 | - | Required | Only if flagged recommended | Can only be recommended as a WCAG best practice currently. I'll try to introduce failure see list of take aways below. |
Landmark 7 | contentinfo landmark: no more than one |
A | 2.4.1 | Recommended | Required | Only if flagged recommended | Can only be recommended as a WCAG best practice currently. I'll try to introduce failure see list of take aways below. |
Landmark 8 | banner landmark: must be top-level |
A | 1.3.1 | Recommended | Required | Only if flagged recommended | Can only be recommended as a WCAG best practice currently. I'll try to introduce failure see list of take aways below. |
Landmark 9 | banner landmark: restrictions |
A | 1.3.1 | Recommended | Required | Only if flagged recommended | Can only be recommended as a WCAG best practice currently. I'll try to introduce failure see list of take aways below. |
Use heading elements (H1-H6) to provide appropriate labels for landmarks, and to identify subsections of content within landmarks.
Comparison information on the 0 rules associated with the Rule Category:
Rule ID | Rule Summary | Level | SC | HTML4 Techniques | HTML5 and ARIA Techniques | DavidSet | David MacDonald Comments |
---|---|---|---|---|---|---|---|
Heading 1 | Page must have h1 element |
A | 2.4.1 | Recommended | Recommended | Yes | Agree, is recommended |
Heading 2 | h1 must be in main or banner landmark |
AA | 2.4.6 | Recommended | Recommended | Yes | Agree, is recommended |
Heading 3 | Sibling headings must be unique | AA | 2.4.6 | Recommended | Recommended | Yes | Agree, is recommended |
Heading 5 | Headings must be properly nested | A | 1.3.1 | Required | Required | Only if flagged recommended | WCAG h69 says "Authors are encouraged to nest headings hierarchically." (best practice, not a failure) Was heavily negotiated for consensus. |
Heading 6 | Headings must have text content | A | 1.3.1 | Recommended | Recommended | Yes | agree, is recommended |
Heading 7 | First landmark heading h2 |
A | 1.3.1 | - | Recommended | Yes | agree, is recommended |
Heading 8 | Headings nested in landmarks | A | 1.3.1 | - | Required | Only if flagged recommended | Landmarks are not required in WCAG, there is no failure for their absence, did not exist when WCAG was written. (Best practice) I will propose a failure, I would vote for that, see list of take aways below. |
Role 10 | Overriding h1-h6 role semantics |
A | 1.3.1 | Recommended | Required | Yes | I will propose a failure, see below list I've made |
Use proper HTML markup to identify the semantics and language of text content. Ensure that text is readable by adhering to color contrast guidelines, and that information is not conveyed solely by the use of color, shape, location or sound.
Comparison information on the 0 rules associated with the Rule Category:
Rule ID | Rule Summary | Level | SC | HTML4 Techniques | HTML5 and ARIA Techniques | DavidSet | David Comments |
---|---|---|---|---|---|---|---|
Color 1 | Text must exceed CCR of 4.5 | AA | 1.4.3 | Required | Required | Yes | Currently covered by WCAG |
Color 2 | Use of color | A | 1.4.1 | Required | Required | Yes | Currently covered by WCAG |
Frame 1 | frame must have accessible name |
A | 2.4.1 | Required | Required | Yes | Currently covered by WCAG |
Frame 2 | iframe must have accessible name |
A | 2.4.1 | Required | Required | Yes | Currently covered by WCAG |
HTML 1 | Replace b and i elements |
A | 4.1.1 | Recommended | Recommended | Yes | Currently covered by WCAG |
HTML 2 | Replace marquee elements |
A | 2.3.1 | Required | Required | Yes | Currently covered by WCAG |
Language 1 | Page must use language code | A | 3.1.1 | Required | Required | Yes | Currently covered by WCAG |
Language 2 | Identify language changes | AA | 3.1.2 | Required | Required | Yes | Currently covered by WCAG |
List 1 | Use semantic markup for lists | A | 1.3.1 | Required | Required | Yes | Currently covered by WCAG |
List 2 | Provide list labels when appropriate | AA | 2.4.6 | Recommended | Recommended | Yes | Should be required if something is made to look like a list but doesn't have list markup |
Order 1 | Reading order: CSS positioning | A | 1.3.2 | Required | Required | Yes | Currently covered by WCAG |
Resize 1 | Resize text content | AA | 1.4.4 | Required | Required | No | Reflow is not required by WCAG. Page zoom is sufficient at 1.4.4 AA. However, AAA requires reflow 1.4.8 (5) |
Role 1 | main element role semantics. |
A | 1.3.1 | Recommended | Required | Only if flagged as recommended | There has been no discussion on WCAG WG not a requirement of WCAG although it probably should be |
Role 11 | li element group item semantics |
A | 4.1.2 | Recommended | Required | Yes | There has been no discussion on WCAG WG not a requirement of WCAG although it probably should be |
Role 2 | body element role semantics. |
A | 1.3.1 | Recommended | Required | yes | There has been no discussion on WCAG WG not a requirement of WCAG although it probably should be... role=application should almost never be on a body tag. |
Role 3 | ol and ul role grouping semantics |
A | 4.1.2 | Recommended | Required | yes | Currently covered by WCAG |
Role 4 | article element role semantics |
A | 1.3.1 | Recommended | Required | Only if flagged as recommended | Don't think there should be allowed <main> inside <article>. Only vice versa. This is a big debate with WHAT WG and HTML5 violated the previous test that <main> must be top level |
Role 5 | section element role semantics |
A | 1.3.1 | Recommended | Required | Only if flagged as recommended | Same as above |
Role 6 | Do not override nav element semantics. |
A | 1.3.1 | Recommended | Required | Yes | Currently covered by WCAG |
Role 7 | aside element role semantics |
A | 1.3.1 | Recommended | Required | Only if flagged as recommended | Currently covered by WCAG |
Role 8 | Do not override header element role . |
A | 1.3.1 | Recommended | Required | Yes | Currently covered by WCAG |
Role 9 | Do not override footer element role . |
A | 1.3.1 | Recommended | Required | Yes | Currently covered by WCAG |
Sensory 1 | Not only shape, size and location | A | 1.3.3 | Required | Required | Yes | Currently covered by WCAG |
Provide appropriate text alternatives for static images and graphics.
Comparison information on the 0 rules associated with the Rule Category:
Rule ID | Rule Summary | Level | SC | HTML4 Techniques | HTML5 and ARIA Techniques | DavidSet | David MacDonald Comments |
---|---|---|---|---|---|---|---|
Image 1 | Images must have alt text | A | 1.1.1 | Required | Required | Have to expand | WCAG F65 now allows aria-label, aria-labelledby, or title to pass 1.1.1 |
Image 2 | Alt text must summarize purpose | A | 1.1.1 | Required | Required | Have to expand | Change the first word from alt, to alternative, because it may not specifically be alt attribute |
Image 3 | Alt text must not include filename | A | 1.1.1 | Required | Required | Yes | Change the first word from alt, to alternative, because it may not specifically be alt attribute |
Image 4 (English) | Alt text no more than 100 characters | A | 1.1.1 | Recommended | Recommended | Yes | Currently covered by WCAG |
Image 5 | Verify image is decorative | A | 1.1.1 | Required | Required | Yes | Currently covered by WCAG |
Image 6 | Long description for complex images | A | 1.1.1 | Required | Required | Yes | Agree, although Summary Details will emerge as the winner. aria-describedby is not very efficient. See last year's poll |
Image 7 | Use MathML for mathematical expressions | A | 1.1.1 | Required | Required | No | Can't require MathML yet can only recommend. I wish we could. See our CSUN discussion of this |
Use link text that properly describes the target of each link. Ensure consistency and uniqueness for links that are usable, predictable and understandable.
Comparison information on the 0 rules associated with the Rule Category:
Rule ID | Rule Summary | Level | SC | HTML4 Techniques | HTML5 and ARIA Techniques | DavidSet | |
---|---|---|---|---|---|---|---|
Focus 3 | Target focus must be in content window | A | 3.2.1 | Required | Required | No | Not required in WCAG |
Link 1 | Link text must describe the link target | A | 2.4.4 | Required | Required | No | Not required by 2.4.4, only 2.4.9, although I would love to require unambiguous Link Text OR aria-label OR aria-labelledby. |
Link 2 | Link text must be unique | A | 2.4.4 | Recommended | Recommended | No | Not required in WCAG |
Role 12 | a[href] element role semantics |
A | 4.1.2 | Recommended | Required | Yes | Currently covered by WCAG |
Provide table captions or other meta-information as needed. Provide row and column header references for data cells of data tables. Ensure that tables used for layout properly linearize text content.
Comparison information on the 0 rules associated with the Rule Category:
Rule ID | Rule Summary | Level | SC | HTML4 Techniques | HTML5 and ARIA Techniques | DavidSet | David MacDonald Comments |
---|---|---|---|---|---|---|---|
Layout 1 | Layout tables must have meaningful sequence | A | 1.3.2 | Required | Required | Yes | Currently covered by WCAG |
Layout 2 | Do not nest layout tables | A | 1.3.2 | Recommended | Recommended | No | Not forbidden in WCAG |
Table 1 | Data cells must have row/column headers | A | 1.3.1 | Required | Required | Yes | Currently covered by WCAG |
Table 2 | Data tables must have name | AA | 2.4.6 | Recommended | Recommended | Yes?? | Not required in WCAG however, I would say we should introduce a failure due to not associating a title of the table with the table (requiring caption or aria-describedby) but aira-describedby would be accDescription, not AccName |
Table 3 | Data tables must have description | A | 1.3.1 | Recommended | Recommended | No | Not required in WCAG, only recommended for complex tables that are not self evident |
Table 4 | Data tables must have unique names | A | 1.3.1 | Required | Required | No | Not required in WCAG |
Table 5 | Identify table markup as data or layout | A | 1.3.1 | Recommended | Required | Yes | Currently covered by WCAG |
Table 6 | Header cells must be th elements |
A | 1.3.1 | Recommended | Required | Yes | Currently covered by WCAG |
Table 7 | Data cells must use headers attribute |
A | 1.3.1 | Required | Required | No | Only for Tables that are not accessibility supported with simple <th>. But there could be a check that every header value has a matching id |
Table 8 | Name must be different than description | A | 1.3.1 | - | Required | No | Neither Name or Description are required by WCAG |
Provide meaningful labels for form elements and usable and understandable error feedback as needed.
Comparison information on the 0 rules associated with the Rule Category:
Rule ID | Rule Summary | Level | SC | HTML4 Techniques | HTML5 and ARIA Techniques | DavidSet | David MacDonald Comments |
---|---|---|---|---|---|---|---|
Control 1 | Form controls must have labels | A | 3.3.2 | Required | Required | Yes | Currently covered by WCAG |
Control 10 | Labels must be unique | AA | 2.4.6 | Required | Required | Recommended | Not sure I would agree. Could have two fieldsets with home and work and both sets have address |
Control 11 | submit and reset buttons must be unique |
AA | 2.4.6 | Required | Required | Yes | Currently covered by WCAG |
Control 2 | Image button must have alt. content | A | 3.3.2 | Required | Required | Only if Expanded | could have another type of accessible name as per H65, title, aria-label, labelledby |
Control 3 | Radio buttons must have grouping label | A | 3.3.2 | Required | Required | Yes | 98% of time this is true, sometimes that question is so obvious a legend would be redundant, other times the it might be explicit or implicit in the individual radio labels |
Control 4 | button s must have content |
A | 3.3.2 | Required | Required | Only if Expanded | could have another type of accessible name |
Control 5 | id must be unique |
A | 4.1.1 | Required | Required | Yes | Currently covered by WCAG |
Control 6 | label must reference control |
A | 3.3.2 | Required | Required | Yes | Currently covered by WCAG |
Control 7 | label must have content |
A | 3.3.2 | Required | Required | Yes | Yes unless it is hidden and will be populated later based on show hide etc... |
Control 8 | fieldset must have one legend |
A | 3.3.2 | Required | Required | No | Not required 100% of the time, sometimes the legend can result in a very chatty form. For instance, if a fieldset is around the entire form, the legend would be spoken for each form field. |
Control 9 | Verify title is label |
A | 3.3.2 | Required | Required | No | Agree if there is no explicit label. The title attribute occupies the ACCNAME OR the ACCDESCRIOTION if ACCNAME is populated |
Error 1 | Information on invalid values | A | 3.3.1 | Required | Required | Yes | Agree, but aria-invalid not required by WCAG, errors must be marked up with text... I'll propose a failure. |
Error 2 | Required form controls | AA | 3.3.3 | Required | Required | Yes | Not required by WCAG but I agree. |
Error 4 | Error correction suggestions | AA | 3.3.3 | Required | Required | Yes | Currently covered by WCAG |
Error 5 | Prevent errors | AA | 3.3.4 | Required | Required | Yes | Currently covered by WCAG |
Focus 4 | select must not change context |
A | 3.2.1 | Required | Required | Yes | Currently covered by WCAG |
Focus 5 | Forms submitted using buttons | A | 3.2.2 | Required | Required | No | There are some exceptions, such as a question "Do you have children" which adds fields for children when checked. |
Use appropriate event handlers on elements to support native interactivity using JavaScript. Ensure that custom widgets created using JavaScript support keyboard interaction and include ARIA markup to describe their roles, properties and states.
Comparison information on the 0 rules associated with the Rule Category:
Rule ID | Rule Summary | Level | SC | HTML4 Techniques | HTML5 and ARIA Techniques | DavidSet | David MacDonald Comments |
---|---|---|---|---|---|---|---|
Error 3 | Required widgets | AA | 3.3.3 | - | Required | Yes | typo of word required http://fae20.cita.illinois.edu/rulesets/rc/rule/ERROR_3/ |
Widget 1 | Widgets must have label | A | 4.1.2 | Required | Required | Yes | Currently covered by WCAG |
Widget 10 | Value in range | A | 4.1.2 | Required | Required | Yes | Currently covered by WCAG |
Widget 11 | Keyboard/Mouse/drag events must have roles | A | 4.1.2 | Required | Required | Yes | Currently covered by WCAG |
Widget 12 | Widget labels must be descriptive | AA | 2.4.6 | Required | Required | Yes | Currently covered by WCAG |
Widget 2 | onClick must have role |
A | 4.1.2 | - | Required | yes | agree but the purpose and description of Rule seem to have discrepency. Definition should include "form control" |
Widget 3 | role must be valid |
A | 4.1.2 | Required | Required | yes | Currently covered by WCAG |
Widget 4 | ARIA values must be valid | A | 4.1.2 | Required | Required | Yes | Currently covered by WCAG |
Widget 5 | ARIA attribute must be defined | A | 4.1.2 | Required | Required | Yes | Currently covered by WCAG |
Widget 6 | Widgets must have properties | A | 4.1.2 | Required | Required | Yes | Currently covered by WCAG |
Widget 7 | Widgets must have child roles | A | 4.1.2 | Required | Required | Yes | agree but owned is not supported by AT well yet. |
Widget 8 | Widgets must have parent | A | 4.1.2 | Required | Required | Yes | Currently covered by WCAG |
Widget 9 | Only one owner | A | 4.1.2 | Required | Required | ? | Not sure, may be exceptions |
Provide appropriate text transcripts, captions or audio descriptions for elements used in rendering audio and video content.
Comparison information on the 0 rules associated with the Rule Category:
Rule ID | Rule Summary | Level | SC | HTML4 Techniques | HTML5 and ARIA Techniques | DavidSet | David's comments |
---|---|---|---|---|---|---|---|
Audio 1 | audio must have alternative. |
A | 1.2.1 | Required | Required | Yes | Agree with all the media |
Audio 2 | object for audio must have alternative. |
A | 1.2.1 | Required | Required | Yes | |
Audio 3 | embed for audio must have alternative. |
A | 1.2.1 | Required | Required | Yes | |
Audio 4 | Pause, stop or mute audio | A | 1.4.2 | Required | Required | Yes | |
Video 1 | video for video only must have alternative |
A | 1.2.1 | Required | Required | Yes | |
Video 2 | object for video only must have alternative |
A | 1.2.1 | Required | Required | Yes | |
Video 3 | embed for video only must have alternative |
A | 1.2.1 | Required | Required | Yes | |
Video 4 | video must have caption |
A | 1.2.2 | Required | Required | Yes | |
Video 5 | object for video must have captions |
A | 1.2.2 | Required | Required | Yes | |
Video 6 | embed for video must have captions |
A | 1.2.2 | Required | Required | Yes | |
Video 7 | video element must have audio description |
A | 1.2.3 | Required | Required | Yes | |
Video 8 | object for video must have audio description |
A | 1.2.3 | Required | Required | Yes | |
Video 9 | embed for video must have audio description |
A | 1.2.3 | Required | Required | Yes |
Provide logical and sequential keyboard navigation among interactive elements such as links and form controls. Use standard models of keyboard interaction for custom widgets.
Comparison information on the 0 rules associated with the Rule Category:
Rule ID | Rule Summary | Level | SC | HTML4 Techniques | HTML5 and ARIA Techniques | DavidSet | David Comments |
---|---|---|---|---|---|---|---|
Bypass 1 | Skip to main content link | A | 2.4.1 | Recommended | Recommended | Yes | Most on committee would say not required if their are headings, and/or landmarks. But best practice |
Focus 1 | Focus order must be meaningful | A | 2.4.3 | Required | Required | Yes | Currently covered by WCAG |
Focus 2 | Focus must be visible | AA | 2.4.7 | Required | Required | Yes | Currently covered by WCAG |
Keyboard 1 | Widgets must support keyboard | A | 2.1.1 | Required | Required | Yes | Currently covered by WCAG |
Keyboard 2 | Interactive functionality must be keyboard operable | A | 2.1.1 | Required | Required | Yes | Currently covered by WCAG |
Keyboard 3 | No keyboard trap | A | 2.1.2 | Required | Required | Yes | Currently covered by WCAG |
Eliminate accessibility problems caused by time limits on input and by content that moves, scrolls, flashes or auto-updates.
Comparison information on the 0 rules associated with the Rule Category:
Rule ID | Rule Summary | Level | SC | HTML4 Techniques | HTML5 and ARIA Techniques | DavidSet | David's Comments |
---|---|---|---|---|---|---|---|
Timing 1 | Control time limits | A | 2.2.1 | Required | Required | Yes | Currently covered by WCAG |
Timing 2 | Control moving, blinking or auto-updating content | A | 2.2.2 | Required | Required | Yes | Currently covered by WCAG |
Timing 3 | Flashing limits | A | 2.3.1 | Required | Required | Yes | Currently covered by WCAG |
Ensure the consistent labeling and ordering of recurrent page sections across all pages within a website. Provide a meaningful title for each page within a website.
Comparison information on the 0 rules associated with the Rule Category:
Rule ID | Rule Summary | Level | SC | HTML4 Techniques | HTML5 and ARIA Techniques | DavidSet | David's comments |
---|---|---|---|---|---|---|---|
Navigation 1 | At least two ways of finding content | AA | 2.4.5 | Recommended | Required | Yes | Currently covered by WCAG |
Navigation 2 | Consistent ordering of landmarks | AA | 3.2.3 | Recommended | Required | No | Landmarks didn't exist, so it's a stretch to require this without specific WCAG documentation |
Navigation 3 | Consistent ordering of h1 and h2 labels |
AA | 3.2.3 | Required | Required | Not unless recommended | Not required by WCAG, good to do but not required |
Navigation 4 | Consistent labeling of landmarks | AA | 3.2.4 | Recommended | Required | Not unless recommended | Not required by WCAG, good to do but not required |
Navigation 5 | Consistent h1 and h2 page section labels |
AA | 3.2.4 | Required | Required | Not unless recommended | Not required by WCAG, good to do but not required |
Title 1 | title must identify website and page |
A | 2.4.2 | Required | Required | Yes | Currently covered by WCAG |
Based on these above tests, I would like to introduce the following new common failures to WCAG.
Important concept was introduced in the Rules, of allowing more than one of things normally limited on static page, but OK if there are iframes in a page... not sure if it could pass but worth discussing.