-
Notifications
You must be signed in to change notification settings - Fork 15
Accessibility Checking
The accessibility checking module of the WPSS Validation Tool performs a number of accessibility tests on Web documents. A profile of test cases is used to determine which checks to perform and report on.
The Tool uses the WCAG 2.0 test cases profile to check and create the report. A list of test cases in each profile is outlined below. Each test case details what the Validation Tool checks for, and if it does not fully implement the checkpoint, it details what is not checked. Accessibility checking is limited to verifying that appropriate mark-up is used and/or text is supplied where needed. There is no checking on the value of the content. A test case can check if alternative text is provided, but it cannot check if the text is appropriate. For example, it can verify there is a description for an image, but cannot verify that the description is valid for that image.
This profile contains WCAG 2.0 test cases.
| Description | Using the aria-describedby property to provide a descriptive label for user interface controls. |
| Checks For | Missing id value or invalid id value. |
| Does Not Check | That the referenced element or elements provide additional information about the user interface control. |
| Description | Identifying a required field with the aria-required property. |
| Checks For | Consistency in required and aria-required attributes. |
| Does Not Check | Whether the value of the aria-required attribute is the correct required state of the user interface component. |
| Description | Using aria-label to provide labels for objects. |
| Checks For | Missing or invalid label content. |
| Does Not Check | That the text description accurately labels the object or provides a description of its purpose or provides equivalent information. |
| Description | Using aria-labelledby for link purpose. |
| Checks For | Missing id value or invalid id values. |
| Does Not Check | That the value of the aria-labelledby attribute matches an ID of a text element used as part of the link purpose. |
| Description | Using aria-label for link purpose. |
| Checks For | Missing or invalid label values. |
| Does Not Check | That the value of the aria-label attribute properly describes the purpose of the link element |
| Description | Using aria-labelledby to concatenate a label from several text nodes. |
| Checks For | For missing id value or invalid id values. |
| Does Not Check | That the concatenated content of elements referenced by aria-labelledby is descriptive for the purpose or function of the element labeled. |
| Description | Using aria-labelledby to provide a text alternative for non-text content. |
| Checks For | Missing id value or invalid id values |
| Does Not Check | That the text of the element identified by the aria-labelledby attribute accurately labels the element, provides a description of its purpose, or provides equivalent information. |
| Description | Using role=heading to identify headings. |
| Checks For | Role="heading" on non <h> tags. |
| Does Not Check | Whether the content of the element is appropriate as a heading. If the element has an aria-level attribute, whether the value is the appropriate hierarchical level. |
| Description | Using aria-labelledby to name regions and landmarks. |
| Checks For | Missing id value or invalid id values. |
| Does Not Check | That the text of the element with that id accurately labels the section of the page. |
| Description | Using aria-describedby to provide descriptions of images. |
| Checks For | Missing id value or invalid id values. |
| Does Not Check | Whether the aria-describedby attribute programatically associates an element with its text description, via the id attribute on the element where the text to be used as the description is found. Whether the combined text equivalent and associated text description accurately describe or provide the equivalent purpose to the object. |
| Description | Using aria-labelledby to provide a name for user interface controls. |
| Checks For | Missing id value or invalid id values. |
| Does Not Check | That the text of the referenced element or elements accurately labels the user interface control. |
| Description | Using grouping roles to identify related form controls. |
| Checks For | If role is “group” or “radiogroup” that an aria-label or aria-labelledby attribute is present. |
| Does Not Check | That the text of the referenced element or elements accurately labels the user interface control. |
| Description | Using aria-alertdialog to Identify Errors. |
| Checks For | If role is “alertdialog” that an aria-label or aria-labelledby attribute is present. |
| Does Not Check | That the text of the referenced element or elements accurately labels the user interface control. |
| Description | Failure of Success Criterion 1.3.1 due to using changes in text presentation to convey information without using the appropriate markup or text. |
| Checks For | Text styled to look like a heading using HTML mark-up (e.g. <strong>). Text styled to look like a heading using on page CSS. |
| Does Not Check | Text styled to look like a heading using external style sheets. Images used to convey structural information. |
| Description | Failure of success criterion 1.1.1 due to using CSS to include images that convey important information. Images are deemed non-decorative if they are specified through tool configuration (non-decorative image list) or if the first occurrence of an image in a site includes alt text. |
| Checks For | If non-decorative images are loaded using CSS. |
| Does Not Check | If the information is provided to assistive technologies and is also available when the CSS image is not displayed. |
| Description | Failure of success criterion 2.2.2 due to using text-decoration:blink without a mechanism to sop it in less than five seconds. |
| Checks For | All styles for the text-decoration property with a value of blink. |
| Does Not Check | If the styles are actually used within the document. |
| Description | Failure of Success Criterion 1.2.2 due to captions omitting some dialogue or important sound effects. |
| Checks For | Missing src attribute in <track> tags. Invalid URL or broken link in <track> tags. No content in closed captions file. |
| Does Not Check | If the closed captions are missing some dialogue or important sound effects. |
| Description | Failure of Success Criterion 2.2.2 due to including scrolling content where movement is not essential to the activity without also including a mechanism to pause and restart the content. |
| Checks For | The presence of a <marquee> tag. |
| Does Not Check | Any other mechanism, such as scripting, generates moving content. |
| Description | Failure of Success Criterion 1.3.1 and 4.1.1 due to insufficient information in DOM to determine one-to-one relationships, for example, between labels with same id in HTML. |
| Checks For | The accesskey and for attribute values are unique. The attribute values that have an idref value have a corresponding id value. The accesskey values consist of a single character only. Note: Duplicate id values are reported under failure F77. |
| Does Not Check | For tables that use the axis attribute, check that all values listed in the axis attribute have a corresponding id value in a table header cell in the same table. For client-side image maps, check that the value of the usemap attribute has a corresponding id value if the usemap attribute is not a URI. |
| ###WCAG_2.0-F25 | |
| ---------------- | --------------- |
| Description | Failure of Success Criterion 2.4.2 due to the title of a page not identifying the contents. |
| Checks For | If title is missing. If the title is the same as the file name in the document URL. If the title matches any invalid values, such as “untitled”. |
| Does Not Check | Other invalid title values. |
| Description | Failure of Success Criterion 1.1.1 and 1.2.1 due to using text alternatives that are not alternatives. |
| Checks For | If the alt attribute matches the src attribute for <img> tags. If the alt attributes matches any invalid values in items such as photos, images, or graphs. |
| Does Not Check | Other text alternatives that are not text alternatives. |
| Description | Failure of Success Criterion 1.3.2 due to using white space characters to control spacing within a word. |
| Checks For | Whitespace inside words. |
| Description | Failure of Success Criterion 1.1.1 by omitting the alt attribute for non-text content used for decorative purposes only in HTML. Images or applets are deemed decorative if they are specified through tool configuration (decorative image list) or if the first occurrence of an image or applet in a site has no alt text. |
| Checks For | If the alt attribute is missing on decorative images or applets. |
| Description | Failure of Success Criterion 1.1.1 due to providing a text alternative that is not null (alt="spacer" or alt="image") for images that should be ignored by assistive technology. Images are deemed decorative if they are specified through tool configuration (decorative image list) or if the first occurrence of an image in a site has no alt text. |
| Checks For | If the alt attribute is an empty string for images that are decorative. |
| Description | Failure of Success Criterion 2.2.1 and 2.2.4 due to using meta redirect with a time limit. |
| Checks For |
<meta http-equiv=”refresh”> with a timeout and a URL. |
| Description | Failure of Success Criterion 2.2.1, 2.2.4 and 3.2.5 due to using meta refresh with a time limit. |
| Checks For |
<meta http-equiv=”refresh”> with a timeout and a URL. |
| Description | Failure of Success Criterion 1.3.1 and 2.1.1 due to using scripting events to emulate links in a way that is not programmatically determinable. |
| Checks For | onclick or onkeypress attributes on tags other than <a> <area> <button> <input> or <select>. |
| Description | Failure of Success Criterion 1.3.1 due to using structural markup in a way that does not represent relationships in the content. |
| Checks For |
<fieldset> used outside a <form>. <hr> used as decoration (<hr> followed by another <hr>, or heading followed by <hr>). |
| Does Not Check | The semantic meaning of other tags. |
| Description | Failure of Success Criterion 2.2.2 due to using the blink element. |
| Checks For | The <blink> tag. |
| Description | Failure of Success Criterion 2.1.1 due to using only pointing-device-specific event handlers (including gesture) for a function. |
| Checks For | Mouse only event handlers. |
| Description | Failure of Success Criteria 2.1.1, 2.4.7, and 3.2.1 due to using script to remove focus when focus is received. |
| Checks For | JavaScript this.blur function. |
| Description | Failure of Success Criterion 2.2.1 due to using server-side techniques to automatically redirect pages after a time-out. |
| Checks For | HTTP header for a “refresh” field with a time out greater than zero. |
| Description | Failure of Success Criterion 1.3.1 and 4.1.1 due to insufficient information in DOM to determine specific relationships in XML. |
| Checks For | A form attribute on an <input>, that is not inside a form, to associate the input to a <form>. An onchange or onclick attribute on an <input>, that is not inside a form, to provide behaviour to the input. |
| Description | Failure of Success Criterion 1.1.1 due to omitting the alt attribute on img elements, area elements, and input elements of type “image”. |
| Checks For | alt attribute on <img>, <area> and <input type=“image”> tags. |
| Description | Failure of Success Criterion 3.2.3 due to presenting navigation links in a different relative order on different pages. |
| Checks For | The relative order of navigation links of all pages. The order of the navigation links on a site’s entry page is used as the expected relative order. |
| Does Not Check | If there are multiple site navigation links with the same anchor text. These links are not checked. |
| Description | Failure of Success Criterion 1.3.1 and 4.1.2 due to the association of label and user interface controls not being programmatically determinable. |
| Checks For | Implicit associate of labels and input or select tags. Text acting as a label for input or select tags. |
| Description | Failure of Success Criterion 4.1.1 due to incorrect use of start and end tags or attribute markup. |
| Checks For | Missing close tag for tags that cannot be nested. For example, <a> and <h1>. |
| Does Not Check | If opening and closing tags are missing the opening (<) and closing (>) brackets. If closing tag is missing the initial forward slash (/) to indicate it is a closing tag. If attribute values that have an opening quote but not a closing quote. Attribute values must be either fully quoted or, in some markup languages, do not have quotes. If there is a lack of whitespace between attributes. If unquoted attribute values have whitespace in the value. If a closing element tag is missing for elements that do not accept empty-element syntax. |
| Description | Failure of Success Criterion 4.1.1 due to duplicate values of type ID. |
| Checks For | There are no duplicate id values. |
| Description | Failure of Success Criterion 1.3.1 due to inserting non-decorative content by using :before and :after pseudo-elements and the “content” property in CSS. |
| Checks For | The content property of styles using :before or :after pseudo-elements contains a quoted string. |
| Does Not Check | If the content is decorative. |
| Description | Failure of Success Criteria 2.4.4, 2.4.9 and 4.1.2 due to using null alt on an image where the image is the only content in a link. |
| Checks For | The alt attribute of an image is empty if the image is the only content of a link. |
| Description | Ensuring that a contrast ratio of at least 4.5:1 exists between text (and images of text) and background behind the text. |
| Checks For | CSS styles that specify a foreground and background colour. Checks colour contrast for an acceptable contrast ratio. |
| Does Not Check | Images Does not take into account font size. The effect of multiple styles. |
| Description | Ensuring that no component of the content flashes more than three times in any one second period. Note: Frames do not necessarily always result in a content flash. |
| Checks For | All images of type image/gif to see if there are more than three frames displayed in any one second time period. |
| Does Not Check | Other animated content types such as Flash. |
| Description | Providing closed captions |
| Checks For | A ‘kind’ attribute with the value “captions” or “description” in one of the <track> tags inside a <video> tag. |
| Does Not Check | The contents of the closed captions. |
| Description | Using semantic elements to mark up structure. |
| Checks For | PDF documents are tagged. |
| Does Not Check | Any other missing markup. |
| Description | Providing links to navigate to related Web pages. |
| Checks For | There is at least one link in HTML documents. |
| Does Not Check | If the links are to related information. |
| Description | Providing descriptive heading. |
| Checks For | If there are any headings (h1, h2, h3) found within the content area of Web pages. If there is text within the heading start and end tags. For example, <h1></h1>. |
| Does Not Check | If the heading identifies the section of the content. |
| Description | Providing descriptive labels. |
| Checks For | If there is text within the label start and end tags. For example, <label></label>. |
| Does Not Check | If the label identifies the purpose of the interface component. |
| Description | Validating Web pages. |
| Checks For | Reports the status of the content type validation tool, for example HTML, CSS, JavaScript). The details of any validation issues are reported by the specific validation tools. |
| Does Not Check | Markup validation of HTML5 web pages. |
| Description | Ensuring that a contrast ratio of at least 3:1 exists between text (and images of text) and background behind the text. |
| Checks For | CSS styles that specify both a foreground and background colour. Checks colour contrast for an acceptable contrast ratio. |
| Does Not Check | Does not check images. Does not take into account font size. The effect of multiple styles. |
| Description | Setting animated gif images to stop blinking after n cycles (within five seconds). |
| Checks For | Checks if GIF animation time is less than five seconds. |
| Description | Using labels, names, and text alternatives consistently for content that has the same functionality. Links that are located within the content area of a page are only checked against other links in the same page. Links that are located in the navigation area of a page are checked against other navigation links in all pages. |
| Checks For | Links, including image links, to the same URL have the same anchor, alt and title text. Note The check is for identical, not similar text, so false errors may be reported. |
| Description | Combining adjacent image and text links for the same resource. |
| Checks For | If the anchor text of a link is the same as the alt text of an image contained within the link. |
| Does Not Check | That there is no a element in an adjacent table cell that has the same href attribute and the same description. |
| Description | Providing text alternatives for the area elements of image maps. |
| Checks For | An <area> tag has an alt attribute. |
| Does Not Check | That the text alternative specified by the alt attribute serves the same purpose as the part of image map image referenced by the area element of the imagemap. |
| Description | Providing a title using the title element. |
| Checks For | There is a non-empty <title> for the document. Very long titles (e.g. greater than 500 characters). |
| Does Not Check | That the title describes the document. |
| Description | Providing link text that describes the purpose of a link for anchor elements. |
| Checks For | Multiple links with the same anchor text, but different href values. “Click here” links. If the anchor text is the same as the href value (i.e. anchor text is a URL). Missing anchor text in link. |
| Does Not Check | That the link text describes the purpose of the link. |
| Description | Providing submit buttons. |
| Checks For | All forms have a submit button (<input type="submit">, <input type="image">, or <button type="submit">). |
| Description | Supplementing link text with the title attribute. |
| Checks For | An anchor tag’s title attribute is not the same as the href value. |
| Does Not Check | Does not check that the title together with the link text describes the purpose of the link. |
| Description | Providing text alternatives on applet elements. |
| Checks For | The <applet> tags contain an alt attribute with content. There is text between the <applet> </applet> tags. |
| Description | Using alt attributes on images used as submit buttons. |
| Checks For | Inputs of <input type="image"> contain an alt attribute with content. |
| Does Not Check | That the alt attribute indicates the button’s function. |
| Description | Using caption elements to associate data table captions with data tables. |
| Checks For | If a table has both a summary attribute and a <caption> element, that the summary is not identical to the <caption>. |
| Does Not Check | If the table is a layout table or a data table. That layout tables do not contain a <caption> element. That the caption identifies the table. |
| Description | Using h1 to h6 to identify headings. |
| Checks For | The content is provided between the <h#> </h#> tags. Very long headings (e.g. greater than 500 characters). |
| Does Not Check | That heading markup is used when content is a heading. That heading markup is not used when content is not a heading. |
| Description | Using id and headers attributes to associate data cells with header cells in data tables. |
| Checks For | Some headers exist in the table. Undefined headers or headers outside the current table. |
| Does Not Check | If the table is a layout table or a data table. |
| Description | Using label elements to associate text labels with form controls. |
| Checks For | A <label> with a for attribute matching the id attribute value exists for <input> that is not hidden or readonly. A <label> with a for attribute matching the id attribute value exists for <textarea>. A <label> appears before the <input> in the HTML stream for <input> of type ‘text’, ‘file’ or ‘password’. A <label> appears before the <textarea> in the HTML stream. A <label> appears after the <input> in the HTML stream for <input> of type ‘checkbox’ or ‘radio’. |
| Does Not Check | That the label is visible. That the label identifies the purpose of the form control. |
| Description | Using the longdesc attribute. |
| Checks For | If an <img> tag has a longdesc attribute, that it has content. The longdesc value is a valid URI. |
| Does Not Check | That the target URI contains a description of the non-text content. |
| Description | Using <noembed> with <embed> elements. |
| Checks For | The number of <embed> and <noembed> tags match. |
| Does Not Check | That an <embed> element has a child <noembed> element. That an <embed> element has a <noembed> element immediately following it. |
| Description | Using ol, ul and dl for lists or groups of links. |
| Checks For | There is at least one <li> inside a <ol> or <ul>. There is at least one <dt> inside a <dl>. |
| Does Not Check | That content that has the visual appearance of a list is marked as a list. That content is marked as a definition list when terms and their definitions are presented in the form of a list. |
| Description | Using table markup to present tabular information. |
| Checks For | There are some table headers |
| Does Not Check | That all cells have the appropriate table headers |
| Description | Using the body of the <object> element. |
| Checks For | There is text between the <object> </object> tags. |
| Description | Using language attributes on the <html> element. |
| Checks For | There is a lang attribute in the <html> tag for HTML, and XHTML 1.0. There is an xml:lang attribute in the <html> tag for XHTML 1.0 and 2.0. If both lang and xml:lang are provided, the values match. If the content language can be determined, the content language matches the lang attribute. |
| Does Not Check | That the lang value reflects the primary language used by the Web page if there are fewer than 1000 characters of content. That the lang value reflects the primary language used by the Web page if the content language cannot be determined (content closely matches two or more languages). |
| Description | Using language attributes to identify changes in the human language. |
| Checks For | XHTML 1.0 documents to verify that a xml:lang attribute is provided whenever a lang attribute is specified. XHTML 1.0 documents to verify that a lang attribute is provided whenever a xml:lang attribute is specified. If both lang and xml:lang are provided, the values match. If the content language can be determined, the content language matches the lang attribute. |
| Does Not Check | Does not check individual language spans. Content from all spans with the same language is concatenated into a single string for analysis. That the lang value reflects the primary language used by spans if there are fewer than 1000 characters. That the lang value reflects the primary language used by the spans if the content language cannot be determined (content closely matches two or more languages). |
| Description | Using the title attribute of the frame and <iframe> elements. |
| Checks For | A title attribute is provided for <frame> <iframe> tags. There is content in the title. |
| Does Not Check | That the title identifies the frame. |
| Description | Using the title attribute to identify form controls when the label element cannot be used. Form controls that do not have a label or title are reported as failures of H91. |
| Checks For | If a title attribute is present, it has content. |
| Description | Using null alt text and no title attribute on img elements for images that AT should ignore. Images are deemed decorative if they are specified through tool configuration (decorative image list), or if the first occurrence of an image in a site has no alt text. |
| Checks For | If the alt and title attributes are empty string for images that are decorative. |
| Description | Providing a description for groups of form controls using <fieldset> and <legend> elements. |
| Checks For | Each <fieldset> tag has a <legend> tag. Inputs of type ‘checkbox’ or ‘radio’ with the same name attribute value in a single form are contained within a <fieldset>. |
| Does Not Check | That groups of logically related <input> elements are contained within a <fieldset> element. |
| Description | Using the summary attribute of the <table> element to give an overview of data tables. |
| Checks For | A table has both a summary attribute and a <caption> element, and that the summary is not identical to the <caption>. |
| Does Not Check | If the table is a layout table or a data table. That layout tables do not contain a <summary> element. |
| Description | Ensuring that opening and closing tags are used according to specification. |
| Checks For | Opening and closing tags are correctly nested. There are no closing tags where closing tags are forbidden. |
| Description | Using HTML according to spec. |
| Checks For | Deprecated tags and deprecated attributes. |
| Description | Using HTML form controls and links. |
| Checks For | A <button> has text within the <button> </button> tags or a title attribute. Each <fieldset> tag has a <legend> tag. <input> of ‘type=“button”’, ‘type=“submit”’ or ‘type=“reset”’ has a value attribute. <input> of ‘type=“image”’ has either an alt or title attribute. <input> of ‘type=“text”’, ‘type=“password”’, ‘type=“checkbox”’ or ‘type=“radio”’ has either a element associated with it or title attribute. <select> has either a <label> element associated with it or title attribute. <textarea> has either a <label> element associated with it or title attribute.
|
| Description | Ensuring that elements do not contain duplicate attributes. |
| Checks For | No attribute occurs more than once on any element. |
| Description | Applying text alternatives to images with the Alt entry in PDF documents. |
| Checks For | Checks that images have either a /Alt or /AltText attribute. |
| Description | Creating bookmarks in PDF documents. |
| Checks For | Bookmarks exist in documents greater than four pages. |
| Does Not Check | That the bookmarks link to the correct sections in the document. |
| Description | Using table elements for table markup in PDF Documents. |
| Checks For | The tables have table headers. |
| Does Not Check | That table headers are in the proper reading order. |
| Description | Providing name, role, value information for form fields in PDF documents. |
| Checks For | A name (tooltip) attribute for form fields. |
| Does Not Check | The role, value or state attributes. |
| Description | Setting the default language using the /Lang entry in the document catalog of a PDF document. |
| Checks For | The Language property is set. |
| Does Not Check | That the /Lang value reflects the primary language used in the document. |
| Description | Specifying the document title using the Title entry in the document information dictionary of a PDF document. |
| Checks For | The Title property is set. |
| Description | Language of the page. |
| Checks For | The xml:lang attribute is set in web feeds. The language matches the language of the content. |
| Description | Using both keyboard and other device-specific functions. |
| Checks For | If an event handler is present, the corresponding (mouse or keyboard) event handler is also present. For example, if mouseover is specified, then focus is also specified. |
WCAG techniques are separated into general techniques and technology specific techniques, such as HTML and CSS. In the event that there are multiple techniques that may apply, the WPSS Validation Tool reports failures under only one technique. Additionally, there are a number of WCAG 2.0 techniques that have duplicate tests. WPSS Validation Tool reports failures under only one technique. The list of techniques below are not reported by this tool.
- C12: Using percent for font sizes Failures are reported under technique G142: Using a technology that has commonly available user agents that support zoom.
- C13: Using named font sizes Failures are reported under technique G142: Using a technology that has commonly available user agents that support zoom.
- C14: Using em units for font sizes Failures are reported under technique G142: Using a technology that has commonly available user agents that support zoom.
- F70: Failure of Success Criterion 4.1.1 due to incorrect use of start and end tags or attribute markup Failures are reported under technique G134: Validating Web pages.
- F80: Failure of Success Criterion 1.4.4 when text-based form controls do not resize when visually rendered text is resized up to 200% Failures are reported under technique C28: Specifying the size of text containers using em units.
- F86: Failure of Success Criterion 4.1.2 due to not providing names for each part of a multi-part form field, such as a US telephone number Failures are reported under technique H44: Using label elements to associate text labels with form controls.
- F89: Failure of Success Criteria 2.4.4, 2.4.9 and 4.1.2 due to using null alt on an image where the image is the only content in a link Failures are reported under techniques; H30: Providing link text that describes the purpose of a link for anchor elements, H91: Using HTML form controls and links.
- G80: Providing a submit button to initiate a change of context Failures are reported under technique H32: Providing submit buttons.
- G88: Providing descriptive titles for Web pages Failures are reported under techniques; H25: Providing a title using the title element, PDF18: Specifying the document title using the Title entry in the document information dictionary of a PDF document.
- G90: Providing keyboard-triggered event handlers Failures are reported under technique SCR20: Using both keyboard and other device-specific functions.
- G162: Positioning labels to maximize predictability of relationships Failures are reported under technique H44: Using label elements to associate text labels with form controls.
- G192: Fully conforming to specifications Failures are reported under technique G134: Validating Web pages.
- H75: Ensuring that Web pages are well-formed Failures are reported under technique G134: Validating Web pages.
- H93: Ensuring that id attributes are unique on a Web page Failures are reported under technique F77: Failure of Success Criterion 4.1.1 due to duplicate values of type ID.
- SCR2: Using redundant keyboard and mouse event handlers Failures are reported under technique SCR20: Using both keyboard and other device-specific functions.