Tests for conformance evaluation
Introduction
This section covers the UWEM automatic and expert testing of Priority 1 and Priority 2 checkpoints of WCAG 1.0 [WCAG10]. For this purpose, this section provides tests for expert and/or automatic evaluation.
The structure of the tests in this section is the following:
-
Guideline
Quotation of the corresponding WCAG 1.0 guideline. Pointers to additional clarifications might be added.
-
Checkpoint
Quotation of the corresponding WCAG 1.0 checkpoint. Pointers to additional clarifications might be added.
For each checkpoint, a set of one or more tests is defined. If no automatic tests for a certain technology are defined, this means that there are no applicable tests for automated testing.
-
(X)HTML-specific tests
Set of tests to be made for conformance claims for (X)HTML resources. Each test consists of:
-
Title and ID: short descriptive title (informative) and unique identifier (normative).
-
Applicability criteria: elements, attributes and combinations thereof used to determine the applicability of the test. Whenever possible, the criteria are presented as XPath expressions, otherwise a prose description is given.
-
Test procedure: description in a tool-independent manner of the test procedure. The procedure may consist of multiple steps and is written so as to enable possible machine-testing.
-
Expected results: statement defining the fail or pass conditions with regard to one or more steps in the test procedure. The elements or content specified in the accessibility criteria pass the test if the result is not FAIL.
-
Fully automatable: statement whether the test procedure can be fully automated (yes/no).
-
-
CSS-specific tests
Set of tests to be made for conformance claims for CSS resources. Each test consists of:
-
Title and ID: short descriptive title (informative) and unique identifier (normative).
-
Applicability criteria: CSS selectors, properties and combinations thereof used to determine the applicability of the test.
-
Test procedure: description in a tool-independent manner of the test procedure. The procedure may consist of multiple steps and is written so as to enable possible machine-testing.
-
Expected results: statement defining the fail or pass conditions with regard to one or more steps in the test procedure. The elements or content specified in the accessibility criteria pass the test if the result is not FAIL.
-
Fully automatable: statement whether the test procedure can be fully automated (yes/no).
-
-
Tests for external objects
Set of tests to be made for conformance claims for objects included or embedded in web pages through HTML elements or CSS-generated content. This includes applets, Flash, video and audio. Each test consists of:
-
Title and ID: short descriptive title (informative) and unique identifier (normative).
-
Applicability criteria: Elements, attributes and combinations thereof used to determine the applicability of the test.
-
Test procedure: description in a tool-independent manner of the test procedure. The procedure may consist of multiple steps and is written so as to enable possible machine-testing.
-
Expected results: statement defining the fail or pass conditions with regard to one or more steps in the test procedure. The elements or content specified in the accessibility criteria pass the test if the result is not FAIL.
-
Fully automatable: statement whether the test procedure can be fully automated (yes/no).
-
-
-
(Optional) Additional clarification issues, such as definition pointers.
This section does not repeat information available in W3C documents. Instead, it provides pointers to the relevant places and extends only information when necessary for the defined tests.
Web content passes a checkpoint if it fails none of the applicable tests for that checkpoint. Web content fails a checkpoint if it fails any of the applicable tests for that checkpoint.
- guideline 1
- guideline 2
- guideline 3
- guideline 4
- guideline 5
- guideline 6
- guideline 7
- guideline 8
- guideline 9
- guideline 10
- guideline 11
- guideline 12
- guideline 13
- guideline 14
Guideline 1
“Provide equivalent alternatives to auditory and visual content.”
(See http://www.w3.org/TR/WCAG10/#gl-provide-equivalents)
This guideline provides information on how to support with complementary text alternatives auditory and visual content.
Checkpoint 1.1
Provide a text equivalent for every non-text element (e.g., via "alt", "longdesc", or in element content). This includes: images, graphical representations of text (including symbols), image map regions, animations (e.g., animated GIFs), applets and programmatic objects, art, frames, scripts, images used as list bullets, spacers, graphical buttons, sounds (played with or without user interaction), stand-alone audio files, audio tracks of video, and video. [Priority 1]
(See http://www.w3.org/TR/WCAG10/#tech-text-equivalent and the techniques in http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-text-equivalent)
(X)HTML tests
Test 1.1_HTML_01
This test is targeted to check that non-text content has a text equivalent.
-
Applicability criteria: all non-text elements that support the alt attribute.
-
//img
//area
//input[@type='image']
//applet -
Test procedure:
Check that the element has an alt attribute. -
Expected results: PASS if true. FAIL if false.
-
Fully automatable: yes.
Test 1.1_HTML_02
This test is targeted to analyse non-text elements with an empty text alternative.
-
Applicability criteria: non-text elements with empty text alternative.
//img[@alt='']
//area[@alt='']
//input[@type='image'][@alt='']
//applet[@alt=''][count(local-name(*)!='param')=0]
//object[count(local-name(*)!='param')=0]
-
Test procedure:
1. Check that the image/content is purely decorative.
2. If #1 is false, check that there is a text alternative adjacent to the non-text content. -
Expected results: PASS if #1 or #2 is true. FAIL if #1 and #2 are false
-
Fully automatable: no.
Test 1.1_HTML_03
This test is targeted to analyse non-text elements with non-empty text alternative.
-
Applicability criteria: all non-text elements with non-empty text alternative.
//img[@alt][@alt!='']
//area[@alt][@alt!='']
//input[@type='image'][@alt][@alt!='']
//applet[@alt][@alt!='']
//object[ count(local-name(*)!='param')>0]
-
Test procedure:
Check that the text alternative appropriately represents the function of the non-text-element within the context. -
Expected results: PASS if true. FAIL if false.
-
Fully automatable: no.
Test 1.1_HTML_04
This test is targeted to analyse long descriptions of media elements.
-
Applicability criteria: all long descriptions of images and media elements.
//img/@longdesc
//object//a/@href
-
Test procedure:
1. Check that the long description referenced by the longdesc or href attribute is available.
2. Check that it appropriately describes the element. -
Expected results: FAIL if #1 or #2 is false.
-
Fully automatable: no.
Test 1.1_HTML_05
This test is targeted to find complex images and non-text content that require a long description.
-
Applicability criteria: all img and object elements.
//img[not(@longdesc)]
//object[not(.//a/@href)]
-
Test procedure:
1. Check that it does not require a long description.
2. If #1 is false, check that a long description is referenced by the longdesc attribute for img elements, or provided by child elements (including an a element referencing a long description) for object elements, respectively. Note that the child elements of the object element can contain a link to a long description. -
Expected results: PASS if #1 or #2 is true. FAIL if #1 and #2 are false.
-
Fully automatable: no.
Test 1.1_HTML_06
This test is targeted to non-text content embedded with the non-standard embed element.
Since there is no defined method of providing alternatives for embed, embed is inherently inaccessible.
-
Applicability criteria: all embed elements.
//embed
-
Test procedure:
Select elements -
Expected results: FAIL if true.
-
Fully automatable: Yes.
Test 1.1_HTML_07
This test is targeted to check for text alternatives for non-text content loaded into an inline frame.
-
Applicability criteria: all iframe elements.
//iframe
-
Test procedure:
1. Check if the element loads non-text content.
2. If #1 is true, check that the element contains a text alternative or a link to a text alternative for the non-text content.
Note that the iframe content cannot be updated when the content loaded by the iframe changes as a result of user interaction or script execution. -
Expected results: PASS if #2 is true. FAIL if #2 is false.
-
Fully automatable: no.
Test 1.1_HTML_08
This test is targeted to check for frames that directly load non-text content.
-
Applicability criteria: all frame elements.
//frame
-
Test procedure:
Check that the element directly loads non-text content. -
Expected results: FAIL if true.
-
Fully automatable: no.
Test 1.1_HTML_09
This test is targeted to find embedded or linked audio-only components without a text transcript.
-
Applicability criteria: All audio-only components.
//object
//applet
//a
-
Test procedure:
Check that there is a text transcript of the audio-only component. -
Expected results: PASS if true. FAIL if false.
-
Fully automatable: no.
Test 1.1_HTML_10
This test is targeted to analyse text transcripts of embedded or linked audio-only components.
-
Applicability criteria: All audio-only components with a transcript.
//object
//applet
//a
-
Test procedure:
Check that the text transcript fully describes all the important information in the audio track(s) of the audio-only component, including spoken words and non-spoken sounds such as sound effects. -
Expected results: PASS if true. FAIL if false.
-
Fully automatable: no.
Tests for external objects
Test 1.1_external_01
This test is targeted to find linked or embedded multimedia presentations without associated captions.
-
Applicability criteria: All multimedia presentations with at least one audio and at least one video track.
//object
//applet
//a
-
Test procedure:
Check that all applicable components have associated captions. -
Expected results: PASS if true. FAIL if false.
-
Fully automatable: no.
Test 1.1_external_02
This test is targeted to analyse the associated captions of multimedia presentations.
-
Applicability criteria: all multimedia presentations with at least one audio and at least one video track.
//object
//applet
//a
-
Test procedure:
Check that the associated captions fully convey all the important information in the audio track(s) of the multimedia presentation, including spoken words and non-spoken sounds such as sound effects. -
Expected results: PASS if true. FAIL if false.
-
Fully automatable: no.
Checkpoint 1.2
Provide redundant text links for each active region of a server-side image map. [Priority1]
(See http://www.w3.org/TR/WCAG10-TECHS/#tech-redundant-server-links and the techniques in http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-redundant-server-links)
(X)HTML tests
Test 1.2_HTML_01
This test is targeted to find active regions of a server-side image map without redundant text links.
-
Applicability criteria: all server-side image maps.
-
//img[@ismap]
//input[@type='image'][@ismap]
-
Test procedure:
1. Identify all active regions of the image map.
2. Check that there is a redundant text link for each active region. -
Expected results: FAIL if #2 is false (for at least one active region).
-
Fully automatable: no.
Checkpoint 1.3
Until user agents can automatically read aloud the text equivalent of a visual track, provide an auditory description of the important information of the visual track of a multimedia presentation. [Priority1]
(See http://www.w3.org/TR/WCAG10-TECHS/#tech-auditory-descriptions and the techniques in http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-auditory-descriptions)
Tests for external objects
Test 1.3_external_01
This test is targeted to find multimedia presentations without an auditory description of the important information of their visual track.
-
Applicability criteria: all multimedia presentations with at least one visual track.
-
//object
//applet
//a -
Test procedure:
Check that there is an auditory description of the important information of the visual track. -
Expected results: PASS if true. FAIL if false.
-
Fully automatable: no.
Test 1.3_external_02
This test is targeted to analyse the auditory description of linked and embedded multimedia presentations.
-
Applicability criteria: all multimedia presentations with at least one visual track.
-
//object
//applet//a
-
Test procedure:
Check that the auditory description effectively conveys all important visual elements of the presentation including information about actors, actions, body language, graphics, and scene changes. -
Expected results: PASS if true. FAIL if false.
-
Fully automatable: no.
Checkpoint 1.4
For any time-based multimedia presentation (e.g., a movie or animation), synchronize equivalent alternatives (e.g., captions or auditory descriptions of the visual track) with the presentation. [Priority 1]
(See http://www.w3.org/TR/WAI-WEBCONTENT/#tech-synchronize-equivalents and the techniques in http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-synchronize-equivalents)
Tests for external objects
Test 1.4_external_01
This test is targeted to check the synchronisation of equivalent alternatives for multimedia presentations.
-
Applicability criteria: all multimedia presentations with equivalent alternatives.
-
//a
//applet
//object -
Test procedure:
Check that the equivalent alternative (captions, auditory descriptions or other equivalent alternative, as applicable) is synchronised with the presentation. -
Expected results: PASS if true. FAIL if false.
-
Fully automatable: no.
Guideline 2
“Don't rely on color alone.”
(See http://www.w3.org/TR/WCAG10/#gl-color)
This guideline provides information on how to use colour appropriately.
Checkpoint 2.1
Ensure that all information conveyed with color is also available without color, for example from context or markup. [Priority 1]
(See http://www.w3.org/TR/WCAG10/#tech-color-convey and the techniques in http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-color-convey)
(X)HTML tests
Test 2.1_HTML_01
This test is targeted to find phrases in text that refer to parts of a document only by mentioning their colour.
-
Applicability criteria: all text.
-
//body
-
Test procedure:
1. Check that the text does not refer to parts of a document only by mentioning their colour.
2. If #1 is false check that references in text via colour are redundant. -
Expected results: PASS if #1 or #2 is true. FAIL if #1 and #2 are false.
-
Fully automatable: no.
Test 2.1_HTML_02
This test is targeted to find phrases in non-text content that refer to parts of a document only by mentioning their colour.
-
Applicability criteria: all text in non-text content.
-
//img
//area
//input[@type='image']
//applet
//object
-
Test procedure:
1. Check that the text does not refer to parts of a document only by mentioning their colour.
2. If 1 is false check that references in text via colour are redundant. -
Expected results: PASS if #1 or #2 is true. FAIL if #1 and #2 are false.
-
Fully automatable: no.
Test 2.1_HTML_03
This test is targeted to find find coloured elements without redundant methods of conveying the information.
-
Applicability criteria: all coloured html elements.
-
//*/@color
//*/@bgcolor
//*/@text
-
Test procedure:
Check that the colour information is redundant. -
Expected results: PASS if true. FAIL if false.
-
Fully automatable: no.
CSS tests
Test 2.1_CSS_01
This test is targeted to find coloured elements without redundant methods of conveying the information.
-
Applicability criteria: all coloured content produced by CSS.
-
color
background-color
background
border-color
border
outline-color
outline
-
Test procedure:
Check that the colour information is redundant. -
Expected results: PASS if true. FAIL if false.
-
Fully automatable: no.
Checkpoint 2.2
Ensure that foreground and background color combinations provide sufficient contrast when viewed by someone having color deficits or when viewed on a black and white screen. [Priority2 for images, Priority3 for text].
(See http://www.w3.org/TR/WCAG10/#tech-color-contrast and the techniques in http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-color-contrast)
(X)HTML tests
Test 2.2_HTML_01
This test is targeted to find images without sufficient colour contrast.
-
Applicability criteria: all images:
-
//img
//area
//input[@type='image']
//object -
Test procedure: Check that the contrast between foreground and background colour is sufficient to convey the information.
-
Expected results: PASS if true. FAIL if false.
-
Fully automatable: yes (if colour contrast algorithm is available).
CSS tests
Test 2.2_CSS_01
This test is targeted to find text without sufficient colour contrast.
-
Applicability criteria: images referenced from CSS styles.
-
background-image
background
content
cursor
list-style-image -
Test procedure: Check that the contrast between foreground and background colour is sufficient to convey the information.
-
Expected results: PASS if true. FAIL if false.
-
Fully automatable: yes (if colour contrast algorithm is available).
Guideline 3
“Use markup and style sheets and do so properly.”
(See http://www.w3.org/TR/WCAG10/#gl-structure-presentation)
Checkpoint 3.1
When an appropriate markup language exists, use markup rather than images to convey information. [Priority 2]
(See http://www.w3.org/TR/WCAG10/wai-pageauth.html#tech-use-markup and the techniques in http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-use-markup)
(X)HTML tests
Test 3.1_HTML_01
This test is targeted to check that there are no images containing text that can be replaced by markup constructs.
-
Applicability criteria: all images.
//img
//input[@type='image']
//object -
Test procedure:
1. Check that the image contains text.
2. If #1 is true check that the image can be replaced by a markup construct without loss of information conveyed by the image.
-
Expected result: FAIL if #2 is true.
-
Fully automatable: no.
Test 3.1_HTML_02
This test is targeted to check that there are no images of mathematical equations that can be replaced by markup constructs.
-
Applicability criteria: all images.
//img
//input[@type='image']
//object -
Test procedure:
1. Check that the image contains a mathematical equation.
2. If yes, check that the image can be replaced by a markup construct.
-
Expected result: FAIL if #2 is true.
-
Fully automatable: no.
Test 3.1_HTML_03
This test is targeted to check that there are no bitmap images that do not contain text or mathemetical equations and can be replaced by markup.
-
Applicability criteria: all bitmap imagesi that do not contain text or mathemetical equations.
//img
//input[@type='image']
//object -
Test procedure:
Check that there is no appropriate markup language able to convey the information in the image.
-
Expected result: PASS if true.
-
Fully automatable: no.
Checkpoint 3.2
Create documents that validate to published formal grammars. [Priority 2]
(See http://www.w3.org/TR/WAI-WEBCONTENT/#tech-identify-grammar and the techniques in http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-identify-grammar)
(X)HTML tests
Test 3.2_HTML_01
This test is targeted to check that the document contains a valid document type declaration.
Note: W3C Quality Assurance maintains a document entitled “Recommended DTDs to use in your Web document” at http://www.w3.org/QA/2002/04/valid-dtd-list.html.
-
Applicability criteria: content preceding the HTML element of any HTML 4.x or XHTML 1.0 document.
-
Test procedure:
Check that the doctype declaration is valid.
-
Expected result: PASS if true. FAIL if true.
-
Fully automatable: yes.
Test 3.2_HTML_02
This test is targeted to find violations against the formal schema for HTML 4.x or XHTML 1.0.
-
Applicability criteria: Any HTML 4.x or XHTML 1.0 document.
-
Test procedure:
a) For HTML, check that the document validates against the specified document type using a validating SGML parser.
b) For XHTML, check that the document is well formed and that it validates against the specified document type using a validating XML parser.
-
Expected result: FAIL if false.
-
Fully automatable: yes.
CSS tests
Test 3.2_CSS_01
This test is targeted to find violations against the formal grammar for CSS 1.0 or CSS 2.x.
-
Applicability criteria: Any CSS style rules.
-
Test procedure:
a) For style rules inside the style element or in the style attributes in an (X)HTML file: check that they conform to the formal grammar defined at http://www.w3.org/TR/REC-CSS2/grammar.html with a SAC parser.
b) For CSS files: check that parsing each CSS file with a SAC parser causes no errors.
Note that the W3C's “CSS Validator” does more then checking CSS rules against the formal grammar: it also checks for (un-)defined properties and their values, which are not included in the grammar. The grammar does not define the actual “vocabulary” of CSS.
-
Expected result: PASS if true. FAIL if false.
-
Fully automatable: yes.
Checkpoint 3.3
Use style sheets to control layout and presentation. [Priority 2]
(See http://www.w3.org/TR/WAI-WEBCONTENT/#tech-style-sheets and the techniques in http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-style-sheets)
(X)HTML tests
Test 3.3_HTML_01
This test is targeted to find whitespace that is used to control spacing between characters within words.
Note: There is no language-independent definition of the term “word”, so evaluators need to check that if the term “word” is applicable to the language of the content they are evaluating and, if yes, make sure that they understand what the term “word” means in the language of the content they are evaluating.
-
Applicability criteria: any “word” containing whitespace.
text()
-
Test procedure:
Check that the whitespace is not used to convey emphasis or importance.
-
Expected result: PASS if true. FAIL if false.
-
Fully automatable: no.
Test 3.3_HTML_02
This test is targeted to determine if layout or presentation of one or more elements has been achieved via means other than CSS.
-
Applicability criteria: elements and attributes that can be used to position or influence presentation
//img
//font
//td (in layout table)
//th (in layout table)
//center
//u
//b
//i
//blink
//strong (unless used semantically)
//em (unless used semantically)
//*/@align
//*/@border
//*/@hspace
//*/@vspace
//*/@bgcolor -
Test procedure:
Check that the resulting position and/or presentation could not be achieved using style sheets.
-
Expected result: FAIL if false.
-
Fully automatable: no.
Checkpoint 3.4
Use relative rather than absolute units in markup language attribute values and style sheet property values. [Priority 2]
(See http://www.w3.org/TR/WCAG10/wai-pageauth.html#tech-relative-units and the techniques in http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-relative-units)
(X)HTML tests
Test 3.4_HTML_01
This test is targeted to check for relative values in (X)HTML attributes of type %Length;.
-
Applicability criteria: attributes that specify height, width, cell padding, cell spacing or a character offset as a number of pixels or a percentage.
//table/@cellpadding
//table/@cellspacing
//col/@charoff
//colgroup/@charoff
//tbody/@charoff
//td/@charoff
//tfoot/@charoff
//th/@charoff
//thead/@charoff
//tr/@charoff
//iframe/@height
//td/@height
//th/@height
//img/@height
//object/@height
//applet/@height
//hr/@width
//iframe/@width
//img/@width
//object/@width
//table/@width
//td/@width
//th/@width
//applet/@width -
Test procedure: Check that the value of the attribute is a percentage value (positive integer + '%') or that it is an absolute value that does not interfere with the readability of other text elements.
-
Expected result: PASS if true. FAIL if false.
-
Fully automatable: yes.
Test 3.4_HTML_02
This test is targeted to check for relative values in (X)HTML attributes of type multi-length ("%MultiLength;" in the HTML 4.01 DTD).
-
Applicability criteria: attributes that specify the width of columns or column groups.
//col/@width
//colgroup/@width -
Test procedure:
Check that the value of the attribute is a percentage value (positive integer + '%') or an * (asterisk) value or that it is an absolute value that does not interfere with the readability of other text elements.
-
Expected result: PASS if true. FAIL if false.
-
Fully automatable: yes.
Test 3.4_HTML_03
This test is targeted to check for relative values in (X)HTML attributes of type multi-length-list or ("%MultiLengths;" in the HTML 4.01 DTD: a comma-separated list of MultiLength).
-
Applicability criteria: attributes that specify a list of lengths in pixels, a percentage or a relative value.
//frameset/@cols
//frameset/@rows -
Test procedure:
Check that each value listed in the attribute is a percentage value (positive integer + '%') or an * (asterisk) value or that it is an absolute value that does not interfere with the readability of other text elements.
-
Expected result: PASS if true. FAIL if false.
-
Fully automatable: yes.
CSS tests
Test 3.4_CSS_01
This test is targeted to check for relative value units in CSS properties that may contain <length> values.
-
Applicability criteria: CSS properties that specify length, width, height, size, spacing or offset.
background-position
border-spacing
bottom
font-size
height
left
letter-spacing
line-height
marker-offset
max-height
max-width
min-height
min-width
right
size
text-indent
text-shadow
top
vertical-align
width
word-spacing -
Test procedure:
1. Check that the unit of the value is not cm, mm, in, pt, pc or px.
2. Check that the value is not xx-small, x-small, small, medium, large, x-large or xx-large.
3. If an absolute value is used, check that the absolute value does not interfere with the readability of any text element.
-
Expected result: PASS if #1 and #2 true or #3 true.
-
Fully automatable: yes.
Checkpoint 3.5
Use header elements to convey document structure and use them according to specification. [Priority 2]
(See http://www.w3.org/TR/WCAG10/wai-pageauth.html#tech-logical-headings and the techniques in http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-logical-headings)
(X)HTML tests
Test 3.5_HTML_01
This test is targeted to find markup constructs that conceptually represent headings, but are not marked up with hx elements.
-
Applicability criteria: the body of a web page.
-
//body//*
-
Test procedure:
1. Select markup constructs that conceptually represent headings.
2. Check whether the headings are marked up with hx elements.Hint: candidates for insufficient markup are e.g. combinations of font-weight/font-style changes (HTML b, i elements; CSS font-weight, font-style properties) and font-size enlargements (HTML big, font elements; CSS font-size property). This list is not exhaustive.
-
Expected result: PASS if true.
-
Fully automatable: no.
Test 3.5_HTML_02
This test is targeted to check that there is no heading element in the page that has a higher level than the first heading.
-
Applicability criteria: all heading elements except h6.
//h1
//h2
//h3//h4
//h5 -
Test procedure:
Check that the heading element does not have a higher level than the first heading element in the document.
-
Expected result: PASS if true.
-
Fully automatable: yes.
Test 3.5_HTML_03
This test is targeted to check that no levels are skipped in the heading hierarchy.
-
Applicability criteria: all heading elements except h1 and h2.
//h3
//h4
//h5
//h6 -
Test procedure:
Check that the inspected heading element does not skip one or more levels in the structure. (e.g. check that for h5 the preceding heading element is either h4, h5 or h6)
-
Expected result: PASS if true.
-
Fully automatable: yes.
Test 3.5_HTML_04
This test is targeted to check if heading elements have been used (improperly) for font formatting.
-
Applicability criteria: all heading elements (h1, ..., h6)
-
//h1
//h2
//h3
//h4
//h5
//h6 -
Test procedure: Check that headings are not used to create font formatting effects.
-
Expected result: PASS if true. FAIL if false.
-
Fully automatable: no.
Test 3.5_HTML_05
This test is targeted to check for the correct heading level hierarchy.
-
Applicability criteria: the whole document.
//body
-
Test procedure:
Check that the heading elements convey the logical structure of the document.
-
Expected result: PASS if true.
-
Fully automatable: no.
Checkpoint 3.6
Mark up lists and list items properly. [Priority 2]
(See http://www.w3.org/TR/WCAG10/#tech-list-structure and the techniques in http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-list-structure)
Encode list structure and list items (UL, OL, DL, LI) properly. The HTML list elements DL, UL, and OL (available in HTML 3.2 and HTML 4.0) should only be used to create lists, not for formatting effects such as indentation. When possible, use ordered (numbered) lists to help navigation.
(X)HTML tests
Test 3.6_HTML_01
Authors can disable the default list style of ordered and unordered list and manually create multi-level numbering (for example, 1, 1.1, 1.2, 1.2.1).This test is targeted to check that manually added list numbering conveys the depth of the list to users.
-
Applicability criteria: all nested ordered and unordered lists with manually inserted multi-level numbers.
//li/ol
//li/ul -
Test procedure:
Check that the numbering does not skip levels or numbers.
-
Expected result: PASS if true.
-
Fully automatable: no.
Test 3.6_HTML_02
This test is targeted to find out whether the List elements (li) are appropriate for the context of the document, i.e. to create lists, not for formatting such as indentation.
-
Applicability criteria: all list item elements, including definitions in definition lists.
//ul/li
//ol/li
//dl/dd -
Test procedure:
Check each that li or dd elements are used to mark up list items and not for formatting effects.
-
Expected result: PASS if true. FAIL if false.
-
Fully automatable: no.
Test 3.6_HTML_03
This test is targeted to find paragraphs, line breaks and numbers that are used to simulate numbered lists and which can be replaced with the ol element.
-
Applicability criteria: all paragraphs starting with a counter (number or character that indicates an order or sequence).
//p
//p//br -
Test procedure:
1. Check that the document does not contain sequences of paragraphs that start with counters to simulate numbered lists.
2. Check that the document does not contain paragraphs with line breaks followed by counters to simulate numbered lists.
-
Expected result: PASS if #1 and #2 are true.
-
Fully automatable: yes.
Test 3.6_HTML_04
This test is targeted to find paragraphs, line breaks and certain characters such as asterisk and hyphens that are used to simulate unordered lists and which can be replaced with the ul element.
-
Applicability criteria: all paragraphs starting with characters that can be used to simulate list items.
-
//p
//p//br -
Test procedure:
1. Check that the document does not contain sequences of paragraphs that start with characters such as asterisk or hyphen to simulate unordered lists.
2. Check that the document does not contain paragraphs with line breaks followed by characters such as asterisk or hyphen to simulate unordered lists. -
Expected result: PASS if #1 and #2 are true. FAIL if #1 or #2 are false.
-
Fully automatable: yes.
Test 3.6_HTML_05
This test is targeted to find paragraphs, line breaks and images displaying numbers that are used to simulate ordered lists and which can be replaced with the ol element and CSS.
-
Applicability criteria: all paragraphs starting with images displaying a number or other types of counters.
//p//img
//p//br/following-sibling::img -
Test procedure:
1. Check that the document does not contain sequences of paragraphs that start with images displaying numbers or other types of counters to simulate ordered lists.
2. Check that the document does not contain paragraphs with line breaks followed by images of consecutive numbers or other types of counters to simulate numbered lists.
-
Expected result: PASS if #1 and #2 are true. FAIL if #1 or #2 are false.
-
Fully automatable: no.
Test 3.6_HTML_06
This test is targeted to find paragraphs, line breaks and images (especially bullet images) that are used to simulate unordered lists and which can be replaced with the ul element and CSS.
-
Applicability criteria: all paragraphs starting with bullet images.
/p//img
//p//br/following-sibling::img -
Test procedure:
1. Check that the document does not contain sequences of paragraphs that start with images of bullets to simulate unordered lists.
2. Check that the document does not contain paragraphs with line breaks followed by images of bullets to simulate unordered lists.
-
Expected result: PASS if #1 and #2 are true. FAIL if #1 or #2 are false.
-
Fully automatable: no.
Test 3.6_HTML_07
This test is targeted to find paragraphs, line breaks and formatting effects that are used to simulate definition lists and which can be replaced with the dt and dd elements.
-
Applicability criteria: all paragraphs starting with a term followed by a definition.
//p
//p//br -
Test procedure:
Check that the document does not contain paragraphs that should be replaced by a definition list.
-
Expected result: PASS if true. FAIL if false.
-
Fully automatable: no.
62CSS tests
Test 3.6_CSS_01
This test is targeted to check that a fall-back list style is present if images are used a list bullets.
-
Applicability criteria: all list-style properties.
*{list-style:...;},
*{list-style-image:url(...);},
*{list-style-type:...;}
-
Test procedure:
Check that a fall-back bullet style (e.g., 'disc') is specified in case a bullet image cannot be loaded. -
Expected result: PASS if true.
-
Fully automatable: yes.
Checkpoint 3.7
Mark up quotations. Do not use quotation markup for formatting effects such as indentation. [Priority 2]
(See http://www.w3.org/TR/WCAG10/#tech-quotes and the techniques in http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-quotes
(X)HTML tests
Test 3.7_HTML_01
This test is targeted to check that quotation elements are used properly to mark up quotations and not for formatting or indentation effects.
-
Applicability criteria: all blockquote elements.
//blockquote
-
Test procedure:
Check that the blockquote is used to mark up a quotation.
-
Expected result: PASS if true. FAIL if false.
-
Fully automatable: no.
Test 3.7_HTML_02
This test is targeted to check that short quotations (q element) are used properly for quotations and not for layout purposes.
-
Applicability criteria: all q elements.
//q
-
Test procedure:
Check that the q element is used to mark up a quotation.
-
Expected result: PASS if true. FAIL if false.
-
Fully automatable: no.
Test 3.7_HTML_03
This test is targeted to find quotations that have not been marked up with q or blockquote.
-
Applicability criteria: all text.
//p
-
Test procedure:
1. Are there any quotations in the select paragraphs. e.g. passages that contain quotation marks in the markup or have CSS-generated quotation marks?
2. If yes, check that the quotations are marked up with q or blockquote.
-
Expected result: PASS if #2 is true. FAIL if #2 is false.
-
Fully automatable: no.
Test 3.7_HTML_04
This test is targeted to find any cite and address elements that are used to italicise text.
-
Applicability criteria: all cite and address elements.
//cite
//address -
Test procedure:
1. Select any cite and address elements.
2. Determine if they are used to italicise text instead of marking up a citation or providing information on the author of the document, respectively.
-
Expected result: FAIL if #2 is true.
-
Fully automatable: no.
Guideline 4
“Clarify natural language usage.”
(See http://www.w3.org/TR/WAI-WEBCONTENT/#gl-abbreviated-and-foreign)
This guideline provides information on how to facilitate pronunciation or interpretation of abbreviated or foreign text.
Checkpoint 4.1
Clearly identify changes in the natural language of a document's text and any text equivalents (e.g., captions). [Priority 1]
(See http://www.w3.org/TR/WAI-WEBCONTENT/#tech-identify-changes and the techniques in http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-identify-changes)
(X)HTML tests
Test 4.1_HTML_01
This test is targeted to find changes in natural language that are not marked up.
-
Applicability criteria: all elements containing text.
-
//*[true(text())]
-
Test procedure:
1. Select elements starting at the lowest level (the "leaves" in the tree structure), and move upwards to parent elements, checking every element in the document.
2. For each text segment in the current element, determine the natural language.
3. Determine if the segment contains proper names, so-called “loanwords” - words and phrases that have become de facto “international”, transcending many specific natural languages – etc., which can be exempted from Checkpoint 4.1.
4. Check that the natural language found in #2 is the same for the rest of the content in the current element.
5. Determine the natural language of the text in the parent element. (If the parent element is the html element, its language is defined either by the lang attribute or from page context.)
6. If two different natural languages are found in #5, check that the (current) element has a lang attribute that identifies the natural language by means of the corresponding two-letter code defined in ISO639.
-
Expected results: PASS if #3 or #4, #5 and #6 are true. FAIL if #4, #5 or #6 is false.
-
Fully automatable: no.
Test 4.1_HTML_02
This test is targeted to find changes in natural language that are not marked up.
-
Applicability criteria: all attributes that specify alternative text, advisory information (the title attribute), a table summary, a label in a hierarchical menu (the label attribute), a standby text (the standby attribute) or other textual content.
-
//img/@alt
//applet/@alt
//area/@alt
//input/@alt
//meta/@content
//option/@label
//optgroup/@label
//object/@standby
//table/@summary
//*/@title)
//input[@type='text']/@value
//input[@type='submit']/@value
//frame/@name
//iframe/@name -
Test procedure:
1. Determine the natural language of the text in the attribute.
2. Determine the natural language of the text in the nearest ancestor of the attribute's parent element.
3. If the languages found in steps 1 and 2 are different, check that the attribute's parent element has a lang attribute that identifies the natural language of the attribute value by means of the corresponding two-letter code defined in ISO639.
-
Expected results: PASS if true. FAIL if false.
-
Fully automatable: no.
Test 4.1_HTML_03
This test is targeted to find block-level elements with changes in text direction (for natural languages) that are not marked up.
-
Applicability criteria: all block-level elements containing text.
-
//*[true(text())]
-
Test procedure:
1. Determine the direction of the text in the (current) element.
2. If the current element is the html or body element and the text-direction if right to left, check that the element has a dir attribute with the value "rtl".
3. If the current element is not the html element, determine the direction of the text in the parent element.
4. If two different text directions are found in step 3, check that the (current) element has a dir attribute that identifies the text direction by means of the corresponding value (rtl or ltr).
-
Expected results: PASS if #2 and #4 are true. FAIL if #2 or #4 is false.
-
Fully automatable: no.
Test 4.1_HTML_04
This test is targeted to find changes in text direction (for natural languages) that are not marked up.
-
Applicability criteria: all attributes that specify alternative text, advisory information (the title attribute), a table summary, a label in a hierarchical menu (the label attribute), a standby text (the standby attribute) or other textual content.
-
//img/@alt
//applet/@alt
//area/@alt
//input/@alt
//meta/@content
//option/@label
//optgroup/@label
//object/@standby
//table/@summary
//*/@title)
//input[@type='text']/@value
//input[@type='submit']/@value
//frame/@name
//iframe/@name
-
Test procedure:
1. Determine the direction of the text in the attribute.
2. Check that the parent element has a dir attribute that identifies the text direction by means of the corresponding value (rtl or ltr).
-
Expected results: PASS if #2 is true. FAIL if #2 is false.
-
Fully automatable: no.
12CSS tests
Test 4.1_CSS_01
This test is targeted to find each CSS style that generates text in a different natural
language than the language of the parent element of the element or elements for which the
style is defined.
Note the following information from the CSS 2.0 specification: "As their names indicate,
the :before and :after pseudo-elements specify the location of content before and after an
element's document tree content" (emphasis added). For this reason, the language of the generated
content should be the same as the language of the parent of the element for which the CSS
style is defined.
-
Applicability criteria: each text string generated by CSS styles.
*:after {content: "...";}
*:before {content: "...";} -
Test procedure:
1. Determine the language of the text string.
2. Determine the language defined for or inherited by the parent element of the element for which the CSS style is defined.
3. Check that the languages found in #1 and #2 are the same.
-
Expected results: PASS if #3 true. FAIL if #3 is false.
-
Fully automatable: no.
Test 4.1_CSS_02
This test is targeted to find CSS styles that are used to control text directionality. For background information, see Authoring Techniques for "XHTML & HTML Internationalization: Handling Bidirectional Text 1.0", "FAQ: CSS vs. markup for bidi support" and the section "Text direction: the 'direction' and 'unicode-bidi' properties" in the CSS 2.0 specification.
-
Applicability criteria: the CSS properties direction and unicode-bidi.
* {direction: rtl; unicode-bidi: embed }
-
Test procedure:
Find CSS styles that use the properties direction and/or unicode-bidi.
-
Expected results: FAIL if true.
-
Fully automatable: yes.
Guideline 5
“Create tables that transform gracefully.”
(See http://www.w3.org/TR/WCAG10/#gl-table-markup)
This guideline provides information on how to identify properly marked up tables.
Checkpoint 5.1
For data tables, identify row and column headers. [Priority1]
(See http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-table-headers)
(X)HTML tests
Test 5.1_HTML_01
This test is targeted to find data tables that do not have row and column headers.
-
Applicability criteria: all data tables.
//table
-
Test procedure:
1. Select the data cells in the data table.
2. For each data cell, check that there is a row header cell and a column header cell that can be identified by the sections "Algorithm to find heading information" or "Associating header information with data cells" in HTML 4.01.
-
Expected results: PASS if #2 is true.
-
Fully automatable: No.
Test 5.1_HTML_02
This test is targeted to identify preformatted text used to display tabular information. Preformatted text does not have mechanisms to specify row and column headings.
-
Applicability criteria: preformatted text.
//pre
-
Test procedure:
Determine if the preformatted text is visually rendered as a table.
-
Expected results: FAIL if true.
-
Fully automatable: no.
Checkpoint 5.2
For data tables that have two or more logical levels of row or column headers, use markup to associate data cells and header cells. [Priority1]
(See http://www.w3.org/TR/WCAG10-TECHS/#tech-table-structure and the techniques in http://www.w3.org/TR/WCAG10-HTML-TECHS/#identifying-table-rows-columns)
Test 5.2_HTML_01
This test is targeted to identify tables with two or more logical levels of rows or columns that are not marked up properly by using table markup that associates rows and columns.
-
Applicability criteria: data tables where content in each data cell has a relationship with at least two row headers and/or at least two column headers.
//table
-
Test procedure:
1. For each data cell, check that at least one of the following applies:
1.a. the headers attribute contains a space-separated list of all the values of the id attributes of the header cells which with the data cell has a relationship;
1.b. all column header cells have a scope attribute with the value 'col' and all row header cells have a scope attribute with the value 'row'.
-
Expected results: PASS if #1.a or #1.b is true.
-
Fully automatable: no.
Test 5.2_HTML_02
This test is targeted to determine if header cells in a heading with two or more levels are categorised consistently. This test does not require that axis should always be used, but that the categories identified by the attribute are appropriate or logical.
-
Applicability criteria: table headers with two or more levels.
//table[count(descendant::tr[th]) > 1]
//table[count(descendant::tr[td[@scope]]) > 1]
//table[descendant::tr[count(th) > 1]]
//table[descendant::tr[count(td[@scope]) > 1]]
//table[descendant::td[boolean(substring-after(substring-after(normalize-space(@headers), ' '), ' ')]] -
Test procedure:
For each header cell in a table header with two or more levels, check that any axis attribute consistently labels the category to which the header cell belongs.
Note that the value of the axis attribute is a label that may be presented to a user, instead of a merely machine-readable class or name.
-
Expected results: FAIL if false.
-
Fully automatable: no.
Test 5.2_HTML_03
This test is targeted to find inconsistent structuring of tables. This test does not require that colgroup, thead, tfoot or tbody should always be used, but that their use is appropriate or logical.
-
Applicability criteria: tables defining column groups, table headings, table footers and table bodies.
//table[colgroup]
//table[thead]
//table[tfoot]
//table[tbody] -
Test procedure:
Check that each of the selected elements correctly structures the table.
-
Expected results: FAIL if false.
-
Fully automatable: no.
Checkpoint 5.3
Do not use tables for layout unless the table makes sense when linearized. Otherwise, if the table does not make sense, provide an alternative equivalent (which may be a linearized version). [Priority 2]
(See http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-avoid-table-for-layout)
(X)HTML tests
Test 5.3_HTML_01
This test is targeted to find layout tables that do not convey the same information when linearised.
-
Applicability criteria: layout tables.
//table[not(@summary) and not(child::caption)]
//table -
Test procedure:
Check that the table conveys the same information when linearised.
-
Expected results: PASS if true. FAIL if false.
-
Fully automatable: no.
Checkpoint 5.4
If a table is used for layout, do not use any structural markup for the purpose of visual formatting. [Priority 2]
(See http://www.w3.org/TR/WCAG10-TECHS/#tech-table-structure and the techniques in http://www.w3.org/TR/WCAG10-HTML-TECHS/#tech-table-layout)
(X)HTML tests
Test 5.4_HTML_01
This test is targeted to check that table headers are only used in data tables.
-
Applicability criteria: tables with header cells.
-
//table[descendant::th]
//table[descendant::td[@scope]]
//table[descendant::td[@axis]]
-
Test procedure:
Check that the table is a data table. -
Expected results: PASS if true. FAIL if false.
-
Fully automatable: no.
Test 5.4_HTML_02
This test is targeted to check that table headers and table footers are only used in data tables.
-
Applicability criteria: tables with headers and/or footers.
-
//table[thead]
//table[tfoot]
-
Test procedure:
Check that the table is a data table. -
Expected result: PASS if true. FAIL if false.
-
Fully automatable: no.
Test 5.4_HTML_03
This test is targeted to check that id and headers attributes are only used in data tables.
-
Applicability criteria: tables with one or more data cells with a headers attribute and one or more header cells with the id attribute.
-
//table[descendant::th[@id]]
//table[descendant::td[@id]]
//table[descendant::td[@headers]]
-
Test procedure:
Check that the table is a data table. -
Expected result: PASS if true. FAIL if false.
-
Fully automatable: no.
Test 5.4_HTML_04
This test is targeted to check that captions are only used for data tables.
-
Applicability criteria: tables with a caption.
-
//table[descendant::caption]
-
Test procedure:
Check that the table is a data table. -
Expected results: PASS if true. FAIL if false.
-
Fully automatable: no.
Test 5.4_HTML_05
This test is targeted to check that cells are only categorised in data tables.
-
Applicability criteria: Tables in which cells are categorised by means of the axis attribute.
-
//table[descendant::th[@axis]]
//table[descendant::td[@axis]]
-
Test procedure:
Check that the table is a data table. -
Expected results: PASS if true. FAIL if false.
-
Fully automatable: no.
Guideline 6
“Ensure that pages featuring new technologies transform gracefully.”
(See http://www.w3.org/TR/1999/WAI-WEBCONTENT-19990505/#gl-new-technologies)
This guideline provides information on ensuring that pages are accessible even when newer technologies are not supported or are turned off.
Checkpoint 6.1
Organize documents so they may be read without style sheets. For example, when an HTML document is rendered without associated style sheets, it must still be possible to read the document. [Priority 1]
(See http://www.w3.org/TR/WCAG10-TECHS/#tech-order-style-sheets and the techniques in http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-order-style-sheets)
(X)HTML tests
Test 6.1_HTML_01
This test analyses the effect on the readability of the document of CSS applied in standalone style sheets, embedded style sheets and style attributes of document elements.
Note that the CSS 2.0 specification defines a style sheet as "A set of statements that specify presentation of a document". This includes the statements in style attributes.
-
Applicability criteria: HTML 4.01 and XHTML 1.0 documents with one or more associated style sheets. This includes style sheets attached to documents by means of HTTP headers (see the section "Linking to style sheets with HTTP headers" in HTML 4.01).
//link[@rel='stylesheet']
//link[@rel='alternate stylesheet']
//style
//*/@style -
Test procedure:
1. Switch off, remove or deactivate all associated style sheets.
2. Check that content does not become invisible.
3. Check that content is not obscured by other content.
4. Check that the meaning is not changed by changes in reading order caused by step 1. -
Expected results: PASS if #2-4 are true. FAIL if #2, #3 or #4 is false.
-
Fully automatable: no.
Test 6.1_HTML_02
This test analyses the effect of programmatically applied styles on the readability of the document.
-
Applicability criteria: any scripts and event handlers that change the presentation of content.
//script
//*/@onfocus
//*/@onblur
//*/@onkeypress
//*/@onkeydown
//*/@onkeyup
//*/@onsubmit
//*/@onreset
//*/@onselect
//*/@onchange
//*/@onload
//*/@onclick
//*/@ondblclick
//*/@onmousedown
//*/@onmouseup
//*/@onmouseover
//*/@onmousemove
//*/@onmouseout -
Test procedure:
1. Deactivate all script in standalone script files applied to the content, script in script blocks and in event handler attributes.
2. Check that content does not become invisible.
3. Check that content is not obscured by other content.
4. Check that the meaning is not changed by changes in reading order caused by step 1.
5. Check that on the ocurrence of actions that would otherwise trigger events, content is still readable – as defined in steps 2-4 - when listeners are turned off. -
Expected results: PASS if #2-5 are true. FAIL if #2, #3, #4 or #5 is false.
-
Fully automatable: no.
Checkpoint 6.2
Ensure that equivalents for dynamic content are updated when the dynamic content changes. [Priority 1]
(See http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-dynamic-source and the techniques in http://www.w3.org/TR/WCAG10-TECHS/#tech-dynamic-source)
(X)HTML tests
Test 6.2_HTML_01
This test analyses the text equivalent of any non-text content loaded into a frame.
-
Applicability criteria: any non-text content referenced by the src attrbute of a frame element.
document(//frame/@src)
document(//iframe/@src) -
Test procedure:
Check that there is an appropriate text equivalent for the current version of the non-text content. -
Expected results: PASS if true. FAIL if false.
-
Fully automatable: no.
Test 6.2_HTML_02
This test analyses the text equivalent of any non-text content loaded into the frame by the browser as a result of link activation or script execution.
-
Applicability criteria: any non-text content that is loaded into a frame as a result of the activation of a link or the execution of a script.
//script
//a/@href
//*/@onfocus
//*/@onblur
//*/@onkeypress
//*/@onkeydown
//*/@onkeyup
//*/@onsubmit
//*/@onreset
//*/@onselect
//*/@onchange
//*/@onload
//*/@onclick
//*/@ondblclick
//*/@onmousedown
//*/@onmouseup
//*/@onmouseover
//*/@onmousemove
//*/@onmouseout -
Test procedure:
Check that there is an appropriate text equivalent for the current version of the non-text content. -
Expected results: PASS if true. FAIL if false.
-
Fully automatable: no.
Test 6.2_HTML_03
This text is targeted to check that there are appropriate equivalents for non-text content that is added to the markup or the Document Object Model (DOM) by means of scripts.
-
Applicability criteria: any non-text content that is added to the markup or the DOM by means of scripts.
//script
//a/@href
//*/@onfocus
//*/@onblur
//*/@onkeypress
//*/@onkeydown
//*/@onkeyup
//*/@onsubmit
//*/@onreset
//*/@onselect
//*/@onchange
//*/@onload
//*/@onclick
//*/@ondblclick
//*/@onmousedown
//*/@onmouseup
//*/@onmouseover
//*/@onmousemove
//*/@onmouseout -
Test procedure:
Check that there is an appropriate text equivalent for the non-text content. -
Expected results: PASS if true. FAIL if false.
-
Fully automatable: no.
Checkpoint 6.3
Ensure that pages are usable when scripts, applets, or other programmatic objects are turned off or not supported. If this is not possible, provide equivalent information on an alternative accessible page. [Priority 1]
(See http://www.w3.org/TR/WCAG10-TECHS/#tech-scripts and the techniques in http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-scripts)
(X)HTML tests
Test 6.3_HTML_01
This test determines whether information and functionality provided by embedded content is also available without said content.
-
Applicability criteria: applets (in a wide sense, not limited to Java; this includes Flash).
//applet
//object -
Test procedure:
1. Disable support for applets.
2. Check that the page is usable and that all functionality is still available.
3. If the page is not usable or some functionality is no longer available, check that there is an alternative accessible page with equivalent information. -
Expected results: PASS if #2 or #3 are true. FAIL if #2 and #3 are false.
-
Fully automatable: no.
Test 6.3_HTML_02
This test determines whether information and functionality provided by script is also available when script is not executed.
-
Applicability criteria: (functionality provided by) scripts.
//script
//a[starts-with(@href, 'javascript:')]
//*/@onfocus
//*/@onblur
//*/@onkeypress
//*/@onkeydown
//*/@onkeyup
//*/@onsubmit
//*/@onreset
//*/@onselect
//*/@onchange
//*/@onload
//*/@onunload
//*/@onclick
//*/@ondblclick
//*/@onmousedown
//*/@onmouseup
//*/@onmouseover
//*/@onmousemove
//*/@onmouseout -
Test procedure:
1. Turn off or disable (the browser's support for) scripts.
2. Check that the page is usable and that all functionality is still available.
3. If the page is not usable or some functionality is no longer available, check that there is an alternative accessible page with equivalent information. -
Expected results: PASS if #2 or #3 are true. FAIL if #2 and #3 are false.
-
Fully automatable: no.
Checkpoint 6.4
For scripts and applets, ensure that event handlers are input device-independent. [Priority 2]
(See http://www.w3.org/TR/WAI-WEBCONTENT/#tech-keyboard-operable-scripts and the techniques in http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-keyboard-operable-scripts)
(X)HTML tests
Test 6.4_HTML_01
This test is targeted to check that mouse-specific event handlers have a keyboard-specific (or device-independent) version.
-
Applicability criteria: elements with attributes for mouse-specific events, including event attributes added by scripts.
-
//*[@onclick]
//*[@onmousedown]
//*[@onmouseup]
//*[@onmouseout]
//*[@onmouseover] -
Test procedure:
Check that each of these elements has a keyboard-specific event handler attribute that triggers exactly the same function or functions as the mouse-specific event handler attribute.The following table maps device-specific event handlers:
Mouse-specific |
Keyboard-specific or device-independent |
onmousedown |
onkeydown |
onmouseup |
onkeyup |
onclick |
onkeypress |
onmouseover |
onfocus |
onmouseout |
onblur |
-
Expected results: PASS if true.
-
Fully automatable: yes.
Test 6.4_HTML_02
This test is targeted to check for mouse-specific event handlers for which no device-independent or keyboard-specific equivalent handlers are defined in the HTML 4 specification.
-
Applicability criteria:
-
//*[@ondblclick]
//*[@onmousemove] -
Test procedure:
1. Select any elements with a mouse-specific event handler attribute that does not have a keyboard-specific event handler attribute that executes exactly the same function.
2. Check that the functions performed by the event handlers can also implemented in a mouse-independent way.
-
Expected results: PASS if #2 is true. FAIL if #2 is false.
-
Fully automatable: no.
Tests for external objects
6.4_external_01
This test is targeted to check event handlers in applets are device-independent.
-
Applicability criteria: applets (in a wide sense, not limited to Java; this includes Flash).
-
-
-
Test procedure:
1. Select any applets loaded in a page.
2. Check that each function can be triggered through a keyboard interface.
-
Expected results: PASS if #2 is true. FAIL if #2 is false.
-
Fully automatable: no.
Checkpoint 6.5
Ensure that dynamic content is accessible or provide an alternative presentation or page. [Priority 2]
(See http://www.w3.org/TR/WCAG10-TECHS/#tech-fallback-page and the techniques in http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-fallback-page)
This checkpoint handles the accessibility of content that is dynamic. There are two ways of creating dynamic content: server-side dynamic content and client-side dynamic content. In terms of (semi-)automatic testing, we are only interested in the client-side dynamic content, because we cannot really identify the presence of server-side dynamic content.
(X)HTML tests
Test 6.5_HTML_01
This test is targeted to find framesets with inaccessible dynamic content and without a noframes section.
-
Applicability criteria: framesets without a noframes section.
//frameset[not(descendant::noframes)]
-
Test procedure:
Check that the dynamic content is accessible.
-
Expected results: PASS if true. FAIL if false.
-
Fully automatable: no.
Test 6.5_HTML_02
This test is targeted to find framesets with inaccessible dynamic content and without a noframes section.
-
Applicability criteria: framesets with dynamic content.
//frameset
-
Test procedure:
1. Check that the dynamic content is accessible.
2. If #1 is false, check that the frameset contains a noframes element with an alternative presentation or a link to an alternative presentation.
-
Expected results: PASS if #1 or #2 is true. FAIL if #1 and #2 are false.
-
Fully automatable: no.
Test 6.5_HTML_03
This test is targeted to find links that use javascript.
-
Applicability criteria: links with the 'javascript:' pseudo-protocol.
//a[starts-with(@href, 'javascript:')]
-
Test procedure:
1. Check that the URI does not use the 'javascript:' pseudo-protocol.
2. If step 1 is false, check that there is an alternative presentation or page with the same content.
-
Expected results: PASS if #1 or #2 is true. FAIL if #1 and #2 are false.
-
Fully automatable: no.
Guideline 7
“Ensure user control of time-sensitive content changes.”
(See http://www.w3.org/TR/WAI-WEBCONTENT/#gl-movement)
This guideline provides information on moving, blinking, scrolling, or auto-updating objects or pages, which make it difficult, sometimes even impossible, to read or access content.
Checkpoint 7.1
Until user agents allow users to control flickering, avoid causing the screen to flicker. [Priority 1]
Note. People with photosensitive epilepsy can have seizures triggered by flickering or flashing in the 4 to 59 flashes per second (Hertz) range with a peak sensitivity at 20 flashes per second as well as quick changes from dark to light (like strobe lights).
(See http://www.w3.org/TR/WAI-WEBCONTENT/#tech-avoid-flicker and the techniques in http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-avoid-flicker)
Note: for checkpoints with an "until user agents" clause, WCAG 1.0 refers to the document "User Agent Support for Accessibility" for information about user agent support for accessibility features. The current version of this document (last updated in on 11 August 2005) states: "Netscape Navigator (versions, platform), Microsoft Internet Explorer (versions, platform), and Opera (versions, platform) allow the user to turn off loading of images, scripts, and applets. Turning these off will allow the user to avoid flicker caused by images, scripts, and applets. For other plug-ins the user can choose not to load the plug-in. However, it would be ideal if users could stop, pause, or step through animations, scripts, or other dynamic content that may cause flicker as discussed in the UAGL checkpoint 3.7 and UAGL checkpoint 3.10."
(X)HTML tests
Test 7.1_HTML_01
This test is targeted to find marquee text that causes blinking. Marquee does not normally cause blinking, but certain combinations of scroll amount, scroll delay, font size and colour might cause parts of the screen to blink.
-
Applicability criteria: marquee elements.
//marquee
-
Test procedure:
1. Check that the marquee does not cause flickering or flashing in the 4 to 59 flashes per second (Hertz) range.
2. If false, check that the flicker is an unavoidable aspect of the presentation and that it can be controlled by the user.
-
Expected results: PASS if #1 or #2 is true. FAIL if #1 and #2 are false.
-
Fully automatable: no.
Test 7.1_HTML_02
This test is targeted to find animated GIF files that cause flicker. (Other image file types for inclusion in HTML pages – JPEG and PNG – do not support animation.)
-
Applicability criteria: animated GIF files.
//img
//object -
Test procedure:
1. Check that the playback speed of frames and the colour contrast between subsequent frames do not cause flickering or flashing in the 4 to 59 flashes per second (Hertz) range.
2. If false, check that the flicker is an unavoidable aspect of the presentation and that it can be controlled by the user.
-
Expected results: PASS if #1 or #2 is true. FAIL if #1 and #2 are false.
-
Fully automatable: no.
Test 7.1_HTML_03
This test is targeted to find client-side scripts that cause flicker or flashing.
-
Applicability criteria: client-side scripts.
//script
//*/@onfocus
//*/@onblur
//*/@onkeypress
//*/@onkeydown
//*/@onkeyup
//*/@onsubmit
//*/@onreset
//*/@onselect
//*/@onchange
//*/@onload
//*/@onclick
//*/@ondblclick
//*/@onmousedown
//*/@onmouseup
//*/@onmouseover
//*/@onmousemove
//*/@onmouseout -
Test procedure:
1. Check that the script does not cause flicker or flashing at a rate between 4 and 59 Hertz.
2. If false, check that the flicker is an unavoidable aspect of the presentation and that it can be controlled by the user. -
Expected results: PASS if #1 or #2 is true. FAIL if #1 and #2 are false.
-
Fully automatable: no.
12CSS tests
Test 7.1_CSS_01
This test is targeted to find CSS-generated content that causes flicker or flashing.
-
Applicability criteria: objects (images, videos, animations) embedded into a web page by means of CSS.
*:after {content: url(...);}
*:before {content: url(...);} -
Test procedure:
1. Check that the object does not cause flicker at a rate between 4 and 59 Hertz.
2. If false, check that the flicker is an unavoidable aspect of the presentation and that it can be controlled by the user. -
Expected results: PASS if #1 or #2 is true. FAIL if #1 and #2 are false.
-
Fully automatable: no.
Test for external objects
Test 7.1_external_01
This test is targeted to find Java applets that cause flicker or flashing.
-
Applicability criteria: Java applets.
//object[@codetype='application/java'] //object[@codetype='application/java-archive]
//object[starts-with(@codetype, 'application/x-java-applet)]
//applet
any content sent by HTTP with MIME types 'application/java', 'application/java-archive', 'application/x-java-applet' -
Test procedure:
1. Check that the applet does not cause flicker or flashing at a rate between 4 and 59 Hertz.
2. If false, check that the flicker is an unavoidable aspect of the presentation and that it can be controlled by the user. -
Expected results: PASS if #1 or #2 is true. FAIL if #1 and #2 are false.
-
Fully automatable: no.
Test 7.1_external_02
This test is targeted to find any video content that cause flicker or flashing.
-
Applicability criteria: video content.
//object[starts-with(@type, 'video/')]
-
Test procedure:
1. Check that the video content does not cause flicker or flashing at a rate between 4 an 59 Hertz.
2. If false, check that the flicker is an unavoidable aspect of the presentation and that it can be controlled by the user. -
Expected results: PASS if #1 or #2 is true. FAIL if #1 and #2 are false.
-
Fully automatable: no.
Checkpoint 7.2
Until user agents allow users to control blinking, avoid causing content to blink (i.e., change presentation at a regular rate, such as turning on and off). [Priority 2]
(See http://www.w3.org/TR/WAI-WEBCONTENT/#tech-avoid-blinking and the techniques in http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-avoid-blinking)
(X)HTML tests
Test 7.2_HTML_01
This test is targeted to find any blink elements.
-
Applicability criteria: blink elements.
//blink
-
Test procedure:
Check that any such elements are found.
-
Expected results: FAIL if true.
-
Fully automatable: Yes.
Test 7.2_HTML_02
This test is targeted to find animated gif files that cause blinking. (Other image file types for inclusion in HTML pages – JPEG and PNG – do not support animation.)
-
Applicability criteria: Animated GIF files.
//img
//object -
Test procedure:
Check that the image does not cause blinking.
-
Expected results: PASS if true. FAIL if false.
-
Fully automatable:Yes, if contrast threshold is known.
Test 7.2_HTML_03
This test is targeted to find scripts that cause blinking.
-
Applicability criteria: scripts.
script
//*/@onfocus
//*/@onblur
//*/@onkeypress
//*/@onkeydown
//*/@onkeyup
//*/@onsubmit
//*/@onreset
//*/@onselect
//*/@onchange
//*/@onload
//*/@onunload
//*/@onclick
//*/@ondblclick
//*/@onmousedown
//*/@onmouseup
//*/@onmouseover
//*/@onmousemove
//*/@onmouseout -
Test procedure:
Check that the script does not cause blinking.
-
Expected results: PASS if true. FAIL if false.
-
Fully automatable: No.
22CSS tests
Test 7.2_CSS_01
This test is targeted to find CSS-generated content that causes blinking.
-
Applicability criteria: images, video and animations generated by CSS styles.
*:after {content: url(...);}
*:before {content: url(...);} -
Test procedure:
Check that the content does not cause blinking.
-
Expected results: PASS if true. FAIL if false.
-
Fully automatable: No.
Test 7.2_CSS_02
This test is targeted to find CSS rules that cause content to blink.
-
Applicability criteria: CSS rules with text-decoration: blink
* { text-decoration: blink;}
-
Test procedure:
Check that there are no CSS rules with text-decoration: blink.
-
Expected results: PASS if true. FAIL if false.
-
Fully automatable: yes.
Tests for external objects
Test 7.2_external_01
This test is targeted to find Java applets that cause blinking.
-
Applicability criteria: applets (Java, Flash or other).
//applet
//object -
Test procedure:
Check that the applet does not cause blinking.
-
Expected results: PASS if true.
-
Fully automatable: no.
Test 7.2_external_02
This test is targeted to find any video content that causes blinking.
-
Applicability criteria: video.
//object
-
Test procedure:
Check that the video content does not cause blinking.
-
Expected results: PASS if true.
-
Fully automatable: no.
Checkpoint 7.3
Until user agents allow users to freeze moving content, avoid movement in pages. [Priority 2]
(See http://www.w3.org/TR/WAI-WEBCONTENT/#gl-movement and the techniques in http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-avoid-movement)
(X)HTML tests
Test 7.3_HTML_01
This test is targeted to find marquee elements.
-
Applicability criteria: marquee elements.
-
//marquee
-
Test procedure:
Check that any such elements are found.
-
Expected results: FAIL if true.
-
Fully automatable: yes.
Test 7.3_HTML_02
This test is targeted to check for scripts that cause movement.
-
Applicability criteria: Scripts.
-
//script
//*/@onfocus
//*/@onblur
//*/@onkeypress
//*/@onkeydown
//*/@onkeyup
//*/@onsubmit
//*/@onreset
//*/@onselect
//*/@onchange
//*/@onload
//*/@onunload
//*/@onclick
//*/@ondblclick
//*/@onmousedown
//*/@onmouseup
//*/@onmouseover
//*/@onmousemove
//*/@onmouseout
-
Test procedure:
1. Check that the script does not cause movement.
2. If false, check that the movement can be frozen.
-
Expected results:
PASS if #1 is true. PASS if #1 is false and #2 is true. FAIL if #1 and #2 are false. -
Fully automatable: no.
32CSS tests
Test 7.3_CSS_01
This test is targeted to find CSS-generated content that causes movement.
-
Applicability criteria: CSS-generated content.
*:after {content: url(...);}
*:before {content: url(...);} -
Test procedure:
Check that the content does not cause movement. -
Expected results: PASS if true. FAIL if false.
-
Fully automatable: no.
Tests for external objects
Test 7.3_external_01
This test is targeted to check for external objects that cause or contain movement.
-
Applicability criteria: applets (Java, Flash or other).
-
//applet
//object
-
Test procedure:
1. Check that the content of the applet does not contain or cause movement.
2. If false, check that the movement can be frozen.
-
Expected results:
PASS if #1 is true. PASS if #1 is false and #2 is true. FAIL if #1 and #2 are false. -
Fully automatable: no.
Test 7.3_external_02
This test is targeted to check for video content that causes or contains movement.
-
Applicability criteria: video.
-
//object
-
Test procedure:
1. Check that the video content does not contain or cause movement.
2. If false, check that the movement can be frozen.
-
Expected results:
PASS if #1 is true.
PASS if #1 is false and #2 is true.
FAIL if #1 and #2 are false. -
Fully automatable: no.
Checkpoint 7.4
Until user agents provide the ability to stop the refresh, do not create periodically auto-refreshing pages. [Priority 2]
(See http://www.w3.org/TR/WAI-WEBCONTENT/#gl-movement and the techniques in http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-no-periodic-refresh)
(X)HTML tests
Test 7.4_HTML_01
This test is targeted to find elements that can cause page refreshing.
-
Applicability criteria: meta elements with http-equiv="refresh".
-
//meta[@http-equiv='refresh']
-
Test procedure:
1. Check that the meta element contains a URI in its content attribute.
2. If true, check that the URI in the meta content attribute is not equal to the URI of the HTML resource containing the meta element.
-
Expected results: PASS if #1 and #2 are true. FAIL if #1 is false. FAIL if #1 is true and #2 is false.
-
Fully automatable: yes.
Test 7.4_HTML_02
This test is targeted to find scripts objects that can cause page refreshing.
-
Applicability criteria: scripts.
-
//script
//*/@onfocus
//*/@onblur
//*/@onkeypress
//*/@onkeydown
//*/@onkeyup
//*/@onsubmit
//*/@onreset
//*/@onselect
//*/@onchange
//*/@onload
//*/@onunload
//*/@onclick
//*/@ondblclick
//*/@onmousedown
//*/@onmouseup
//*/@onmouseover
//*/@onmousemove
//*/@onmouseout
-
Test procedure:
1. Check that the script does not cause page refreshing.
2. If false, check that the refreshing can be stopped. -
Expected results:
PASS if #1 or #2 is true. FAIL if #1 and #2 are false. -
Fully automatable: no.
Tests for external objects
Test 7.4_external_01
This test is targeted to check for external objects that can cause page refreshing.
-
Applicability criteria: external objects.
-
//applet
//object -
Test procedure:
1. Check that the object does not cause page refreshing.
2. If false, check that the refreshing can be stopped.
-
Expected results:
PASS if #1 or #2 is true. FAIL if #1 and #2 are false. -
Fully automatable: no.
Checkpoint 7.5
Until user agents provide the ability to stop auto-redirect, do not use markup to redirect pages automatically. Instead, configure the server to perform redirects. [Priority 2]
(See http://www.w3.org/TR/WAI-WEBCONTENT/#gl-movement and the techniques in http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-no-auto-forward)
5851(X)HTML tests
Test 7.5_HTML_01
This test is targeted to find elements that can cause page redirecting.
-
Applicability criteria: meta elements with http-equiv="refresh".
-
//meta[@http-equiv='refresh']
-
Test procedure:
Check that the URI in the meta element's content attribute is equal to the URI of the document containing the meta element.
-
Expected results: PASS if true. FAIL if false.
-
Fully automatable: yes.
Test 7.5_HTML_02
This test is targeted to find scripts that cause redirecting without providing a mechanism to stop the redirect.
-
Applicability criteria: scripts.
-
//script
//*/@onfocus
//*/@onblur
//*/@onkeypress
//*/@onkeydown
//*/@onkeyup
//*/@onsubmit
//*/@onreset
//*/@onselect
//*/@onchange
//*/@onload
//*/@onunload
//*/@onclick
//*/@ondblclick
//*/@onmousedown
//*/@onmouseup
//*/@onmouseover
//*/@onmousemove
//*/@onmouseout
-
Test procedure:
1. Check that the script does not cause redirecting.
2. If false, check that the redirecting can be stopped.
-
Expected results:
PASS if #1 is true. PASS if #1 is false and #2 is true. FAIL if #1 and #2 are false.
-
Fully automatable: no.
Tests for external objects
Test 7.5_external_01
This test is targeted to check for external objects that can cause redirecting without providing a mechanism to stop this.
-
Applicability criteria: external objects.
-
//applet
//object -
Test procedure:
1. Check that the object does not cause redirecting.
2. If false, check that the redirecting can be stopped.
-
Expected results:
PASS if #1 is true. PASS if #1 is false and #2 is true. FAIL if #1 and #2 are false. -
Fully automatable: no.
Guideline 8
“Ensure direct accessibility of embedded user interfaces.”
(See http://www.w3.org/TR/WCAG10/#gl-own-interface)
This guideline provides information on how to create accessible embedded user interfaces.
Checkpoint 8.1
Make programmatic elements such as scripts and applets directly accessible or compatible with assistive technologies [Priority 1 if functionality is important and not presented elsewhere, otherwise Priority 2.]
(See http://www.w3.org/TR/WCAG10/#tech-directly-accessible and the techniques in http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-directly-accessible)
(X)HTML tests
Test 8.1_HTML_01
This test is targeted to find scripts that are not directly accessible or compatible with assistive technologies.
-
Applicability criteria: scripts.
-
//script
//*/@onfocus
//*/@onblur
//*/@onkeypress
//*/@onkeydown
//*/@onkeyup
//*/@onsubmit
//*/@onreset
//*/@onselect
//*/@onchange
//*/@onload
//*/@onunload
//*/@onclick
//*/@ondblclick
//*/@onmousedown
//*/@onmouseup
//*/@onmouseover
//*/@onmousemove
//*/@onmouseout -
Test procedure:
1. If the script is a user agent, check that it conforms to the User Agent Accessibility Guidelines 1.0.
2. If the script is an authoring tool, check that it conforms to the Authoring Tool Accessibility Guidelines 1.0.
3. In other cases, check that the object is directly accessible or compatible with assistive technologies, either through an Accessibility API if available or by ensuring that all functionality is available when only a keyboard interface is used. -
Expected results: PASS if #1 or #2 or #3 is true. FAIL if #1, #2 and #3 are false.
-
Fully automatable: no.
Tests for external objects
Test 8.1_external_01
This test is targeted find external objects that are not directly accessible or compatible with assistive technologies.
-
Applicability criteria: all external objects.
-
//applet
//object -
Test procedure:
1. If the external object is a user agent, check that it conforms to the User Agent Accessibility Guidelines 1.0.
2. If the external object is an authoring tool, check that it conforms to the Authoring Tool Accessibility Guidelines 1.0.
3. In other cases, check that the object is directly accessible or compatible with assistive technologies, either through an Accessibility API if available or by ensuring that all functionality is available when only a keyboard interface is used.
-
Expected results: PASS if #1 or #2 or #3 is true. FAIL if #1, #2 and #3 are false.
-
Fully automatable: no.
Guideline 9
“Design for device-independence.”
(See http://www.w3.org/TR/WCAG10/#gl-device-independence)
This guideline provides information on how to create web content that does not rely on one specific input or output device.
Checkpoint 9.1
Provide client-side image maps instead of server-side image maps except where the regions cannot be defined with an available geometric shape. [Priority1]
(See http://www.w3.org/TR/WCAG10/#tech-client-side-maps and the techniques in http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-client-side-maps)
(X)HTML tests
Test 9.1_HTML_01
This test is targeted to find server-side image maps.
-
Applicability criteria: server-side image maps.
//a //img[@ismap]
//input[@type='image']
-
Test procedure:
Check that the server-side image map can not be replaced with a client-side image map.
-
Expected results: PASS if true. FAIL if false.
-
Fully automatable: yes.
Checkpoint 9.2
Ensure that any element that has its own interface can be operated in a device-independent manner. [Priority 2]
(See http://www.w3.org/TR/WAI-WEBCONTENT/#tech-keyboard-operable and the techniques in http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-keyboard-operable)
Tests for external objects
Test 9.2_external_01
This test is targeted to check for the device-independence of the interface of embedded or included objects.
-
Applicability criteria: all embedded or included objects.
-
//applet
//object -
Test procedure:
1. Check that the external object does not have its own interface.
2. If false, check that any operation supported by the interface can be operated in a device-independent manner by using only a keyboard or keyboard alternative interface.
-
Expected results:
PASS if #1 or #2 is true. FAIL if #1 and #2 are false.
-
Fully automatable: no.
Checkpoint 9.3
For scripts, specify logical event handlers rather than device-dependent event handlers. [Priority 2]
(See http://www.w3.org/TR/WAI-WEBCONTENT/#tech-device-independent-events and the techniques in http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-device-independent-events)
(X)HTML tests
Test 9.3_HTML_01
This test is targeted to check for possibly replacing device-dependent event handlers with device-independent ones.
-
Applicability criteria: elements with device-dependent event handler attributes.
-
//*/@onclick
//*/@ondblclick
//*/@onkeydown
//*/@onkeypress
//*/@onkeyup
//*/@onmousedown
//*/@onmousemove
//*/@onmouseout
//*/@onmouseover
//*/@onmouseup
-
Test procedure:
Check that the device-dependent event handler attributes can not be replaced with device-independent ones, like @onblur, @onchange, @onfocus, @onload, @onreset, @onselect, @onsubmit and @onunload.
-
Expected results: PASS if true. FAIL if false.
-
Fully automatable: yes.
Guideline 10
“Use interim solutions.”
(See http://www.w3.org/TR/WCAG10/#gl-interim-accessibility)
Checkpoint 10.1
Until user agents allow users to turn off spawned windows, do not cause pop-ups or other windows to appear and do not change the current window without informing the user. [Priority 2]
(See http://www.w3.org/TR/WAI-WEBCONTENT/#tech-avoid-pop-ups and the techniques in http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-avoid-pop-ups)
(X)HTML tests
Test 10.1_HTML_01
This test is targeted to find any target attributes that cause content to be opened in a new window without informing the user.
-
Applicability criteria: a, area, form or link elements with a target attribute with a value that is not one of “_self”, “_parent” or “_top”.
-
//a[@target!='_self' and @target!='_parent' and @target!='_top']
//area[@target!='_self' and @target!='_parent' and @target!='_top']
//form[@target!='_self' and @target!='_parent' and @target!='_top']
//link[@target!='_self' and @target!='_parent' and @target!='_top']
-
Test procedure:
Check that the content warns the user that activating the element spawns a new window.
-
Expected results: PASS if true. FAIL if false.
-
Fully automatable: no.
Test 10.1_HTML_02
This test is targeted to find base elements with a target attribute that cause content to be opened in a new window without informing the user.
-
Applicability criteria: base elements with a target attribute with a value that is not one of “_self”, “_parent” or “_top”.
//base[@target!='_self' and @target!='_parent' and @target!='_top']
-
Test procedure:
Check that the content warns the user that activating any a, area, form or link element spawns a new window.
-
Expected results: PASS if true. FAIL if false.
-
Fully automatable: no.
Test 10.1_HTML_03
This test is targeted to find scripts that cause content to be opened in a new window without informing the user.
-
Applicability criteria: scripts that cause content to be opened in a new window.
//script
//*/@onblur
//*/@onchange
//*/@onfocus
//*/@onload
//*/@onreset
//*/@onselect
//*/@onsubmit
//*/@onunload
//a[starts-with(@href, 'javascript:')] -
Test procedure:
Check that the content warns the user that the script spawns a new window.
-
Expected results: PASS if true. FAIL if false
-
Fully automatable: no.
Checkpoint 10.2
Until user agents support explicit associations between labels and form controls, for all form controls with implicitly associated labels, ensure that the label is properly positioned. [Priority 2]
(See http://www.w3.org/TR/WCAG10/#tech-unassociated-labels and the techniques in http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-unassociated-labels)
(X)HTML tests
Test 10.2_HTML_01
This test is targeted to find form controls with improperly positioned, implicitly associated labels.
-
Applicability criteria: visible form controls that can have labels.
//input[not(@type='hidden')][not(@type='submit')][not(@type='button')][not(@type='reset')]
//select
//textarea -
Test procedure:
Check that any implicitly associated label for the control is properly positioned.
-
Expected results: PASS if true. FAIL if false.
-
Fully automatable: no.
Guideline 11
Use W3C technologies and guidelines.
(See http://www.w3.org/TR/1999/WAI-WEBCONTENT-19990505/#gl-use-w3c)
This guideline recommends using W3C technologies and describes what to do if other technologies are used.
Checkpoint 11.1
Use W3C technologies when they are available and appropriate for a task and use the latest versions when supported. [Priority 2]
(See http://www.w3.org/TR/WCAG10-TECHS/#tech-latest-w3c-specs and the techniques in http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-latest-w3c-specs)
(X)HTML tests
Test 11.1_HTML_01
This test is targeted to find out whether the latest versions of W3C technologies for HTML and XHML have been used.
-
Applicability criteria: HTTP content header and document type declaration.
-
-
-
Test procedure:
1. Check that the HTTP content type is text/html or application/xhtml+xml.
2. If HTTP content type is text/html, check that the document type is HTML 4.01 or XHTML 1.0.
3. If HTTP content type is application/xhtml+xml, check that the document type is XHTML 1.1.
4. If document type is HTML 4.01, check that the document conforms to the DTD with a validating SGML parser.
5. If document type is XHTML 1.0 or XHTML 1.1, check that the document conforms to the DTD with a validating XML parser.
-
Expected results: FAIL if any is false.
-
Fully automatable: yes.
Checkpoint 11.2
Avoid deprecated features of W3C technologies. [Priority 2]
(See http://www.w3.org/TR/WCAG10-TECHS/#tech-avoid-deprecated and the techniques in http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-avoid-deprecated)
Note that “deprecated” can mean different things in different specifications. In HTML 4.01 it means the following:
“A deprecated element or attribute is one that has been outdated by newer constructs. Deprecated elements are defined in the reference manual in appropriate locations, but are clearly marked as deprecated. Deprecated elements may become obsolete in future versions of HTML.
User agents should continue to support deprecated elements for reasons of backward compatibility.”
It is possible that a deprecated feature is deprecated in favour of another feature that is not well supported (e.g. object is intended to replace applet).
(X)HTML tests
Test 11.2_HTML_01
This test is targeted to find deprecated HTML elements.
-
Applicability criteria: deprecated elements in the HTML 4.01 specification.
//applet
//basefont
//center
//dir
//font
//isindex
//menu
//s
//strike
//u -
Test procedure:
Check that any of these elements are present.
-
Expected results: PASS if false. FAIL if true.
-
Fully automatable: yes.
Test 11.2_HTML_02
This test is targeted to find deprecated HTML attributes.
-
Applicability criteria: deprecated attributes in the HTML 4.01 specification.
//body/@bgcolor
//body/@link
//body/@alink
//body/@vlink
//body/@background
//body/@text
//caption/@align
//iframe/@align
//img/@align
//img/@border
//img/@hspace
//img/@vspace
//object/@align
//object/@border
//object/@hspace
//object/@vspace
//input/@align
//legend/@align
//li/@value
//table/@align
//table/@bgcolor
//tr/@bgcolor
//th/@bgcolor
//th/@height
//th/@nowrap
//th/@width
//td/@bgcolor
//td/@height
//td/@nowrap
//td/@width
//hr/@align
//hr/@noshade
//hr/@size
//hr/@width
//p/@align
//div/@align
//h1/@align
//h2/@align
//h3/@align
//h4/@align
//h5/@align
//h6/@align
//br/@clear
//dl/@compact
//ol/@compact
//ol/@start
//ol/@value
//ul/@compact
//script/@language
XHTML 1.0 formally deprecates the use of:
//a/@name
//applet/@name
//form/@name
//frame/@name
//iframe/@name
//img/@name -
Test procedure:
Check that any of these attributes are present.
-
Expected results: PASS if false. FAIL if true.
-
Fully automatable: yes.
Checkpoint 11.4
If, after best efforts, you cannot create an accessible page, provide a link to an alternative page that uses W3C technologies, is accessible, has equivalent information (or functionality), and is updated as often as the inaccessible (original) page. [Priority 1]
(See http://www.w3.org/TR/WCAG10-TECHS/#tech-alt-pages and the techniques in http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-alt-pages)
(X)HTML tests
Test 11.4_HTML_01
This test looks for the alternative content and checks whether it is equivalent.
-
Applicability criteria: linked alternative page.
-
document(//a/href)
document(//link/@href)
-
Test procedure:
1. Compare functionality and information content of the two delivery units.
2. Check that they are equivalent.
-
Expected results: PASS if #2 is true. FAIL if #2 is false.
-
Fully automatable: no.
Test 11.4_HTML_02
This test looks for the alternative content and checks whether it is accessible.
-
Applicability criteria: linked alternative page.
-
document(//a/href)
document(//link/@href)
-
Test procedure:
1. Identify the alternative content.
2. Check that it conforms to all tests for Priority 1 checkpoints in this section of UWEM other than this one, 11.4.
-
Expected results: PASS if #2 is true. FAIL if #2 is false.
-
Fully automatable: no.
Test 11.4_HTML_03
This test looks for the alternative content and checks whether the original content could have been made accessible.
-
Applicability criteria: linked alternative page.
-
document(//a/href)
document(//link/@href) -
Test procedure:
1. Identify the alternative content.
2. Check that the original content could not have been made accessible without undue effort.
-
Expected results: PASS if #2 is true. FAIL if #2 is false.
-
Fully automatable: no.
Guideline 12
Provide context and orientation information.
(See http://www.w3.org/TR/WAI-WEBCONTENT/#gl-complex-elements)
This guideline provides information on how to provide contextual and orientation information to help users understand complex pages or elements.
Checkpoint 12.1
Title each frame to facilitate frame identification and navigation. [Priority 1]
(See http://www.w3.org/TR/WAI-WEBCONTENT/#tech-frame-titles)
(X)HTML tests
Test 12.1_HTML_01
This test is targeted to find frames without description.
-
Applicability criteria: frame elements without title attribute.
-
//frame[not(@title)]
//iframe[not(@title)]
-
Test procedure:
Check that any such frames are found. -
Expected results: FAIL if true.
-
Fully automatable: yes.
Test 12.1_HTML_02
This test is targeted to check whether the title attribute identifies the frame.
-
Applicability criteria: frame elements with title attribute.
//frame[@title]
//iframe[@title] -
Test procedure:
1. Select elements.
2. Check that the title identifies the frame.
-
Expected results: PASS if #2 is true. FAIL if #2 is false.
-
Fully automatable: no.
Checkpoint 12.2
Describe the purpose of frames and how frames relate to each other if it is not obvious by frame titles alone. [Priority2]
(See http://www.w3.org/TR/WAI-WEBCONTENT/#tech-frame-longdesc)
(X)HTML tests
Test 12.2_HTML_01
This test is targeted to check whether the long description represents the context of the frame, if it is not clear by the frame title alone.
-
Applicability criteria: documents referenced by a frame element's longdesc attribute

