Server : Apache/2.4.43 (Win64) OpenSSL/1.1.1g PHP/7.4.6 System : Windows NT USER-PC 6.1 build 7601 (Windows 7 Professional Edition Service Pack 1) AMD64 User : User ( 0) PHP Version : 7.4.6 Disable Function : NONE Directory : C:/Program Files (x86)/Microsoft Office/OFFICE11/1028/Accessibility/ |
<?xml version="1.0"?> <!-- Web Accessibility Initiative (WAI)/Section 508 Compliance rule set. Copyright 2001, Microsoft Corporation, All rights reserved. Version 11.4526 --> <xp:ruleset version="1.0" xmlns:xp="http://schemas.microsoft.com/2001/xmlpatterns"> <!-- INCLUDE SECTION --> <xp:include src="WCAG_str.xml"/> <!-- CATEGORY: 1.1 --> <xp:category name="$Checkpoint1_1" href="$strRedir1_1"> <xp:rule context="(//img) | (//noembed)"> <!-- following tests: no "alt" AND no longdesc --> <xp:pattern match="@alt | @longdesc" is-assert="true" priority="1"> <xp:report type="error"> <xp:summary> <xp:value-of select="$str1_1_MissingAltAndLongDesc_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str1_1_MissingAltAndLongDesc"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> <!-- following tests: with "alt" > than 255 characters --> <xp:rule context="(//img) | (//noembed) | (//input[@type = 'image']) | (//area)"> <xp:pattern match="@alt[string-length( . ) > 255]" priority="1"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str1_1_AttributeTooLong_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str1_1_AttributeTooLong"/> </xp:message> </xp:report> </xp:pattern> <!-- following tests: with "alt" AND alt text ends with a file type of image --> <xp:pattern match="@alt[( ( substring( ., string-length( . ) - 3 ) = '.bmp' ) or ( substring( ., string-length( . ) - 3 ) = '.gif' ) or ( substring( ., string-length( . ) - 3 ) = '.png' ) or ( substring( ., string-length( . ) - 3 ) = '.jpg' ) or ( substring( ., string-length( . ) - 3 ) = '.mix' ) or ( substring( ., string-length( . ) - 3 ) = '.tif' ) or ( substring( ., string-length( . ) - 3 ) = '.pic' ) or ( substring( ., string-length( . ) - 4 ) = '.pict' ) or ( substring( ., string-length( . ) - 4 ) = '.jpeg' ) or ( substring( ., string-length( . ) - 3 ) = '.avi' ) or ( substring( ., string-length( . ) - 3 ) = '.jpe' ) or ( substring( ., string-length( . ) - 3 ) = '.tiff' ) or ( substring( ., string-length( . ) - 3 ) = '.pcx' ) or ( substring( ., string-length( . ) - 3 ) = '.pcd' ) or ( substring( ., string-length( . ) - 3 ) = '.asf' ) or ( substring( ., string-length( . ) - 3 ) = '.asx' ) or ( substring( ., string-length( . ) - 2 ) = '.wm' ) or ( substring( ., string-length( . ) - 3 ) = '.wmx' ) or ( substring( ., string-length( . ) - 3 ) = '.wmp' ) or ( substring( ., string-length( . ) - 3 ) = '.wma' ) or ( substring( ., string-length( . ) - 3 ) = '.wax' ) or ( substring( ., string-length( . ) - 3 ) = '.wmv' ) or ( substring( ., string-length( . ) - 3 ) = '.wvx' ) or ( substring( ., string-length( . ) - 3 ) = '.wav' ) or ( substring( ., string-length( . ) - 4 ) = '.mpeg' ) or ( substring( ., string-length( . ) - 3 ) = '.mpg' ) or ( substring( ., string-length( . ) - 3 ) = '.mpe' ) or ( substring( ., string-length( . ) - 3 ) = '.m1v' ) or ( substring( ., string-length( . ) - 3 ) = '.mp2' ) or ( substring( ., string-length( . ) - 4 ) = '.mp2v' ) or ( substring( ., string-length( . ) - 3 ) = '.mpa' ) or ( substring( ., string-length( . ) - 3 ) = '.mp3' ) or ( substring( ., string-length( . ) - 3 ) = '.m3u' ) or ( substring( ., string-length( . ) - 3 ) = '.mid' ) or ( substring( ., string-length( . ) - 4 ) = '.midi' ) or ( substring( ., string-length( . ) - 3 ) = '.rmi' ) or ( substring( ., string-length( . ) - 3 ) = '.ivf' ) or ( substring( ., string-length( . ) - 3 ) = '.aif' ) or ( substring( ., string-length( . ) - 3 ) = '.aiff' ) or ( substring( ., string-length( . ) - 2 ) = '.au' ) or ( substring( ., string-length( . ) - 3 ) = '.acr' ) or ( substring( ., string-length( . ) - 3 ) = '.arc' ) or ( substring( ., string-length( . ) - 3 ) = '.arj' ) or ( substring( ., string-length( . ) - 3 ) = '.art' ) or ( substring( ., string-length( . ) - 3 ) = '.asc' ) or ( substring( ., string-length( . ) - 3 ) = '.avr' ) or ( substring( ., string-length( . ) - 3 ) = '.avs' ) or ( substring( ., string-length( . ) - 3 ) = '.bac' ) or ( substring( ., string-length( . ) - 3 ) = '.bas' ) or ( substring( ., string-length( . ) - 3 ) = '.bbm' ) or ( substring( ., string-length( . ) - 3 ) = '.bck' ) or ( substring( ., string-length( . ) - 3 ) = '.big' ) or ( substring( ., string-length( . ) - 4 ) = '.big5' ) or ( substring( ., string-length( . ) - 3 ) = '.bmf' ) or ( substring( ., string-length( . ) - 3 ) = '.boo' ) or ( substring( ., string-length( . ) - 3 ) = '.byu' ) or ( substring( ., string-length( . ) - 3 ) = '.cgm' ) or ( substring( ., string-length( . ) - 3 ) = '.clp' ) or ( substring( ., string-length( . ) - 3 ) = '.cmf' ) or ( substring( ., string-length( . ) - 3 ) = '.com' ) or ( substring( ., string-length( . ) - 3 ) = '.cpt' ) or ( substring( ., string-length( . ) - 3 ) = '.cur' ) or ( substring( ., string-length( . ) - 3 ) = '.cut' ) or ( substring( ., string-length( . ) - 3 ) = '.dat' ) or ( substring( ., string-length( . ) - 3 ) = '.ram' ) or ( substring( ., string-length( . ) - 2 ) = '.ra' ) or ( substring( ., string-length( . ) - 3 ) = '.tar' ) or ( substring( ., string-length( . ) - 1 ) = '.z' ) or ( substring( ., string-length( . ) - 2 ) = '.gz' ) or ( substring( ., string-length( . ) - 3 ) = '.tgz' ) or ( substring( ., string-length( . ) - 3 ) = '.zip' ) or ( substring( ., string-length( . ) - 3 ) = '.rft' ) or ( substring( ., string-length( . ) - 2 ) = '.ai' ) or ( substring( ., string-length( . ) - 3 ) = '.eps' ) or ( substring( ., string-length( . ) - 2 ) = '.ps' ) or ( substring( ., string-length( . ) - 3 ) = '.exe' ) or ( substring( ., string-length( . ) - 3 ) = '.bin' ) or ( substring( ., string-length( . ) - 3 ) = '.sit' ) or ( substring( ., string-length( . ) - 3 ) = '.hqz' ) or ( substring( ., string-length( . ) - 3 ) = '.wav' ) or ( substring( ., string-length( . ) - 3 ) = '.snd' ) or ( substring( ., string-length( . ) - 3 ) = '.xbm' ) or ( substring( ., string-length( . ) - 2 ) = '.zw' ) or ( substring( ., string-length( . ) - 3 ) = '.yuv' ) or ( substring( ., string-length( . ) - 3 ) = '.xwd' ) or ( substring( ., string-length( . ) - 3 ) = '.xpm' ) or ( substring( ., string-length( . ) - 2 ) = '.xm' ) or ( substring( ., string-length( . ) - 3 ) = '.sbm' ) or ( substring( ., string-length( . ) - 3 ) = '.wmf' ) or ( substring( ., string-length( . ) - 3 ) = '.voc' ) or ( substring( ., string-length( . ) - 3 ) = '.vis' ) or ( substring( ., string-length( . ) - 3 ) = '.vik' ) or ( substring( ., string-length( . ) - 3 ) = '.uud' ) or ( substring( ., string-length( . ) - 3 ) = '.uue' ) or ( substring( ., string-length( . ) - 3 ) = '.utl' ) or ( substring( ., string-length( . ) - 2 ) = '.ul' ) or ( substring( ., string-length( . ) - 3 ) = '.tga' ) or ( substring( ., string-length( . ) - 3 ) = '.stm' ) or ( substring( ., string-length( . ) - 3 ) = '.shg' ) or ( substring( ., string-length( . ) - 3 ) = '.sgi' ) or ( substring( ., string-length( . ) - 2 ) = '.sf' ) or ( substring( ., string-length( . ) - 3 ) = '.sea' ) or ( substring( ., string-length( . ) - 3 ) = '.scx' ) or ( substring( ., string-length( . ) - 3 ) = '.s3m' ) or ( substring( ., string-length( . ) - 3 ) = '.rol' ) or ( substring( ., string-length( . ) - 3 ) = '.rle' ) or ( substring( ., string-length( . ) - 3 ) = '.rmi' ) or ( substring( ., string-length( . ) - 3 ) = '.rgb' ) or ( substring( ., string-length( . ) - 3 ) = '.raw' ) or ( substring( ., string-length( . ) - 3 ) = '.rax' ) or ( substring( ., string-length( . ) - 3 ) = '.ras' ) or ( substring( ., string-length( . ) - 2 ) = '.ps' ) or ( substring( ., string-length( . ) - 3 ) = '.ppm' ) or ( substring( ., string-length( . ) - 3 ) = '.pol' ) or ( substring( ., string-length( . ) - 3 ) = '.pnt' ) or ( substring( ., string-length( . ) - 2 ) = '.pm' ) or ( substring( ., string-length( . ) - 3 ) = '.pgm' ) or ( substring( ., string-length( . ) - 3 ) = '.pds' ) or ( substring( ., string-length( . ) - 3 ) = '.pdf' ) or ( substring( ., string-length( . ) - 3 ) = '.pcx' ) or ( substring( ., string-length( . ) - 3 ) = '.pct' ) or ( substring( ., string-length( . ) - 3 ) = '.pcm' ) or ( substring( ., string-length( . ) - 3 ) = '.pcc' ) or ( substring( ., string-length( . ) - 3 ) = '.pcd' ) or ( substring( ., string-length( . ) - 3 ) = '.pbm' ) or ( substring( ., string-length( . ) - 3 ) = '.omf' ) or ( substring( ., string-length( . ) - 3 ) = '.off' ) or ( substring( ., string-length( . ) - 3 ) = '.nst' ) or ( substring( ., string-length( . ) - 3 ) = '.nff' ) or ( substring( ., string-length( . ) - 3 ) = '.mtv' ) or ( substring( ., string-length( . ) - 3 ) = '.mtm' ) or ( substring( ., string-length( . ) - 3 ) = '.msp' ) or ( substring( ., string-length( . ) - 3 ) = '.mrb' ) or ( substring( ., string-length( . ) - 3 ) = '.mps' ) or ( substring( ., string-length( . ) - 3 ) = '.mpg' ) or ( substring( ., string-length( . ) - 3 ) = '.mpa' ) or ( substring( ., string-length( . ) - 3 ) = '.mp2' ) or ( substring( ., string-length( . ) - 3 ) = '.mod' ) or ( substring( ., string-length( . ) - 3 ) = '.mki' ) or ( substring( ., string-length( . ) - 3 ) = '.mid' ) or ( substring( ., string-length( . ) - 3 ) = '.mhg' ) or ( substring( ., string-length( . ) - 3 ) = '.mgf' ) or ( substring( ., string-length( . ) - 3 ) = '.mat' ) or ( substring( ., string-length( . ) - 3 ) = '.map' ) or ( substring( ., string-length( . ) - 3 ) = '.mag' ) or ( substring( ., string-length( . ) - 3 ) = '.mac' ) or ( substring( ., string-length( . ) - 3 ) = '.lm8' ) or ( substring( ., string-length( . ) - 3 ) = '.lbm' ) or ( substring( ., string-length( . ) - 3 ) = '.jpc' ) or ( substring( ., string-length( . ) - 3 ) = '.jis' ) or ( substring( ., string-length( . ) - 3 ) = '.jfi' ) or ( substring( ., string-length( . ) - 4 ) = '.jbig' ) or ( substring( ., string-length( . ) - 3 ) = '.jas' ) or ( substring( ., string-length( . ) - 3 ) = '.ish' ) or ( substring( ., string-length( . ) - 3 ) = '.iff' ) or ( substring( ., string-length( . ) - 3 ) = '.ief' ) or ( substring( ., string-length( . ) - 3 ) = '.ico' ) or ( substring( ., string-length( . ) - 3 ) = '.ibm' ) or ( substring( ., string-length( . ) - 2 ) = '.hz' ) or ( substring( ., string-length( . ) - 3 ) = '.hrz' ) or ( substring( ., string-length( . ) - 3 ) = '.hlp' ) or ( substring( ., string-length( . ) - 3 ) = '.hlb' ) or ( substring( ., string-length( . ) - 3 ) = '.ham' ) or ( substring( ., string-length( . ) - 3 ) = '.gry' ) or ( substring( ., string-length( . ) - 2 ) = '.gl' ) or ( substring( ., string-length( . ) - 2 ) = '.gb' ) or ( substring( ., string-length( . ) - 3 ) = '.gds' ) or ( substring( ., string-length( . ) - 4 ) = '.fssd' ) or ( substring( ., string-length( . ) - 3 ) = '.flx' ) or ( substring( ., string-length( . ) - 3 ) = '.fli' ) or ( substring( ., string-length( . ) - 3 ) = '.fic' ) or ( substring( ., string-length( . ) - 3 ) = '.fit' ) or ( substring( ., string-length( . ) - 4 ) = '.fits' ) or ( substring( ., string-length( . ) - 3 ) = '.fac' ) or ( substring( ., string-length( . ) - 1 ) = '.f' ) or ( substring( ., string-length( . ) - 3 ) = '.euc' ) or ( substring( ., string-length( . ) - 3 ) = '.eps' ) or ( substring( ., string-length( . ) - 3 ) = '.dxf' ) or ( substring( ., string-length( . ) - 3 ) = '.dwg' ) or ( substring( ., string-length( . ) - 3 ) = '.dlg' ) or ( substring( ., string-length( . ) - 2 ) = '.dl' ) or ( substring( ., string-length( . ) - 3 ) = '.dib' ) or ( substring( ., string-length( . ) - 3 ) = '.dcs' ) or ( substring( ., string-length( . ) - 3 ) = '.dat' ) or ( substring( ., string-length( . ) - 3 ) = '.cut' ) or ( substring( ., string-length( . ) - 3 ) = '.cur' ) or ( substring( ., string-length( . ) - 3 ) = '.cpt' ) )]" priority="1"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str1_1_PossibleImageNameInAlt_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str1_1_PossibleImageNameInAlt"/> </xp:message> </xp:report> </xp:pattern> <!-- following tests: with "alt" AND alt="image"; "photo"; or "picture" --> <xp:pattern match="@alt[( ( substring(., 0 ) = 'Image') or ( substring(., 0 ) = 'Photo') or ( substring(., 0 ) = 'Picture') or ( substring(., 0 ) = 'image') or ( substring(., 0 ) = 'photo') or ( substring(., 0 ) = 'picture') )]" priority="1"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str1_1_InvalidDesc_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str1_1_InvalidDesc"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> <xp:rule context="//area"> <!-- following tests: no "alt" in AREA --> <xp:pattern match="@alt" is-assert="true" priority="1"> <xp:report type="error"> <xp:summary> <xp:value-of select="$str1_1_MissingAlternativeText_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str1_1_MissingAlternativeText"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> <xp:rule context="//input[@type = 'image']"> <!-- following tests: INPUT type = image with no "alt" --> <xp:pattern match="@alt" is-assert="true" priority="1"> <xp:report type="error"> <xp:summary> <xp:value-of select="$str1_1_MissingAlt_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str1_1_MissingAlt"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> <xp:rule context="(//applet)"> <!-- following tests: no "alt" AND no TEXT EQUIVALENT in the content of the Applet--> <xp:pattern match="@alt |.//text" is-assert="true" priority="1"> <xp:report type="error"> <xp:summary> <xp:value-of select="$str1_1_AppletMissingText_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str1_1_AppletMissingText"/> </xp:message> </xp:report> </xp:pattern> <!-- following tests: alt-text ends with applet executable extension --> <xp:pattern match="@alt[( ( substring( ., string-length( . ) - 5 ) = '.class' ) or ( substring( ., string-length( . ) - 4 ) = '.java' ) or ( substring( ., string-length( . ) - 3 ) = '.jar' ) or ( substring( ., string-length( . ) - 3 ) = '.zip' ) or ( substring( ., string-length( . ) - 3 ) = '.cal' ) or ( substring( ., string-length( . ) - 3 ) = '.clp' ) or ( substring( ., string-length( . ) - 3 ) = '.crd' ) or ( substring( ., string-length( . ) - 3 ) = '.exe' ) )]" priority="1"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str1_1_AltEndsWithExeExt_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str1_1_AltEndsWithExeExt"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> <xp:rule context="//object"> <!-- following tests: Object with image type and NO text element --> <xp:pattern match="@type[not (./parent::*//text())]" priority="1"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str1_1_ObjectTypeImageMissingTextEquivalent_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str1_1_ObjectTypeImageMissingTextEquivalent"/> </xp:message> </xp:report> </xp:pattern> <!-- following tests: with text element AND text is placeholder contains words "goes here" --> <xp:pattern match="(self::object[contains (., 'GoesHere')]) | (self::object[contains (., 'Placeholder')]) " priority="1"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str1_1_GoesHereObjectText_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str1_1_GoesHereObjectText"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> <!-- following tests: no -NOSCRIPT /NOSCRIPT-, should follow SCRIPT tag --> <xp:rule context="//script"> <xp:pattern match="./following-sibling::noscript" is-assert="true" priority="1"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str1_1_NoNoScriptTag_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str1_1_NoNoScriptTag"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> <!-- following tests: FRAME and IFRAME AND no longdesc --> <xp:rule context="//frame | //iframe"> <xp:pattern match="@longdesc" is-assert="true" priority="1"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str1_1_FrameIFrameNoLongdesc_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str1_1_FrameIFrameNoLongdesc"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> <!-- following tests: FRAMESET AND no NOFRAMES --> <xp:rule context="//frameset[not(./ancestor::frameset)]"> <xp:pattern match=".//noframes" is-assert="true" priority="1"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str1_1_FRAMESETMissingNOFRAMES_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str1_1_FRAMESETMissingNOFRAMES"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> <!-- following tests: MAP with A elements with no text equivalent --> <xp:rule context="//a"> <xp:pattern match="@coords[not (./parent::*//text())]" priority="1"> <xp:report type="error"> <xp:summary> <xp:value-of select="$str1_1_MapWithNoAltText_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str1_1_MapWithNoAltText"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> <xp:rule> <!-- following tests: If you use ASCII art --> <xp:pattern priority="1"> <xp:report type="guideline"> <xp:summary> <xp:value-of select="$str1_1_PossibleAsciiArt_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str1_1_PossibleAsciiArt"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 1.2 --> <xp:category name="$Checkpoint1_2" href="$strRedir1_2"> <xp:rule context="(//img) | (//input)"> <xp:pattern match="@ismap" priority="1"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str1_2_ImageMapPossibleNoTextLinks_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str1_2_ImageMapPossibleNoTextLinks"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 1.3 --> <xp:category name="$Checkpoint1_3" href="$strRedir1_3"> <xp:rule context="//img | //input"> <!-- following tests: for "dynsrc" --> <xp:pattern match="@dynsrc" priority="1"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str1_3_PossibleVideoWithNoAudioTrack_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str1_3_PossibleVideoWithNoAudioTrack"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> <!-- following tests: with "src" where src ends with a multimedia file type --> <xp:rule context="//img | //input"> <xp:pattern match="@src[( ( substring( ., string-length( . ) - 4 ) = '.midi' ) or ( substring( ., string-length( . ) - 3 ) = '.mid' ) or ( substring( ., string-length( . ) - 3 ) = '.rmi' ) or ( substring( ., string-length( . ) - 4 ) = '.mpeg' ) or ( substring( ., string-length( . ) - 3 ) = '.mpg' ) or ( substring( ., string-length( . ) - 3 ) = '.mpv' ) or ( substring( ., string-length( . ) - 3 ) = '.mp2' ) or ( substring( ., string-length( . ) - 3 ) = '.mpa' ) or ( substring( ., string-length( . ) - 3 ) = '.mpe' ) or ( substring( ., string-length( . ) - 3 ) = '.m1v' ) or ( substring( ., string-length( . ) - 4 ) = '.mpv2' ) or ( substring( ., string-length( . ) - 3 ) = '.mp3' ) or ( substring( ., string-length( . ) - 3 ) = '.mp2v' ) or ( substring( ., string-length( . ) - 3 ) = '.m3u' ) or ( substring( ., string-length( . ) - 3 ) = '.asf' ) or ( substring( ., string-length( . ) - 3 ) = '.asx' ) or ( substring( ., string-length( . ) - 3 ) = '.avi' ) or ( substring( ., string-length( . ) - 3 ) = '.wav' ) or ( substring( ., string-length( . ) - 3 ) = '.wax' ) or ( substring( ., string-length( . ) - 3 ) = '.wma' ) or ( substring( ., string-length( . ) - 2 ) = '.wm' ) or ( substring( ., string-length( . ) - 3 ) = '.wvx' ) or ( substring( ., string-length( . ) - 2 ) = '.qt' ) or ( substring( ., string-length( . ) - 3 ) = '.mov' ) or ( substring( ., string-length( . ) - 3 ) = '.aif' ) or ( substring( ., string-length( . ) - 4 ) = '.aifc' ) or ( substring( ., string-length( . ) - 4 ) = '.aiff' ) or ( substring( ., string-length( . ) - 2 ) = '.au' ) or ( substring( ., string-length( . ) - 3 ) = '.snd' ) or ( substring( ., string-length( . ) - 3 ) = '.ivf' ) or ( substring( ., string-length( . ) - 3 ) = '.dat' ) or ( substring( ., string-length( . ) - 3 ) = '.ram' ) or ( substring( ., string-length( . ) - 2 ) = '.ra' ) or ( substring( ., string-length( . ) - 3 ) = '.mod' ) or ( substring( ., string-length( . ) - 4 ) = '.ulaw' ) or ( substring( ., string-length( . ) - 3 ) = '.voc' ) )]" priority="1"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str1_3_PossibleVideoWithNoAudioTrack_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str1_3_PossibleVideoWithNoAudioTrack"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> <xp:rule context="//param"> <!-- following tests: with Object, param where value equals multimedia file type --> <xp:pattern match="@value[( ( substring( ., string-length( . ) - 4 ) = '.midi' ) or ( substring( ., string-length( . ) - 3 ) = '.mid' ) or ( substring( ., string-length( . ) - 3 ) = '.rmi' ) or ( substring( ., string-length( . ) - 4 ) = '.mpeg' ) or ( substring( ., string-length( . ) - 3 ) = '.mpg' ) or ( substring( ., string-length( . ) - 3 ) = '.mpv' ) or ( substring( ., string-length( . ) - 3 ) = '.mp2' ) or ( substring( ., string-length( . ) - 3 ) = '.mpa' ) or ( substring( ., string-length( . ) - 3 ) = '.mpe' ) or ( substring( ., string-length( . ) - 3 ) = '.m1v' ) or ( substring( ., string-length( . ) - 4 ) = '.mpv2' ) or ( substring( ., string-length( . ) - 3 ) = '.mp3' ) or ( substring( ., string-length( . ) - 3 ) = '.mp2v' ) or ( substring( ., string-length( . ) - 3 ) = '.m3u' ) or ( substring( ., string-length( . ) - 3 ) = '.asf' ) or ( substring( ., string-length( . ) - 3 ) = '.asx' ) or ( substring( ., string-length( . ) - 3 ) = '.avi' ) or ( substring( ., string-length( . ) - 3 ) = '.wav' ) or ( substring( ., string-length( . ) - 3 ) = '.wax' ) or ( substring( ., string-length( . ) - 3 ) = '.wma' ) or ( substring( ., string-length( . ) - 2 ) = '.wm' ) or ( substring( ., string-length( . ) - 3 ) = '.wvx' ) or ( substring( ., string-length( . ) - 2 ) = '.qt' ) or ( substring( ., string-length( . ) - 3 ) = '.mov' ) or ( substring( ., string-length( . ) - 3 ) = '.aif' ) or ( substring( ., string-length( . ) - 4 ) = '.aifc' ) or ( substring( ., string-length( . ) - 4 ) = '.aiff' ) or ( substring( ., string-length( . ) - 2 ) = '.au' ) or ( substring( ., string-length( . ) - 3 ) = '.snd' ) or ( substring( ., string-length( . ) - 3 ) = '.ivf' ) or ( substring( ., string-length( . ) - 3 ) = '.dat' ) or ( substring( ., string-length( . ) - 3 ) = '.ram' ) or ( substring( ., string-length( . ) - 2 ) = '.ra' ) or ( substring( ., string-length( . ) - 3 ) = '.mod' ) or ( substring( ., string-length( . ) - 4 ) = '.ulaw' ) or ( substring( ., string-length( . ) - 3 ) = '.voc' ) )]" priority="1"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str1_3_PossibleVideoWithNoAudioTrack_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str1_3_PossibleVideoWithNoAudioTrack"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 1.4 --> <xp:category name="$Checkpoint1_4" href="$strRedir1_4"> <xp:rule> <xp:pattern priority="1"> <xp:report type="guideline"> <xp:summary> <xp:value-of select="$str1_4_TimeBasedMultiMedia_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str1_4_TimeBasedMultiMedia"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 2.1 --> <xp:category name="$Checkpoint2_1" href="$strRedir2_1"> <xp:rule> <xp:pattern priority="1"> <xp:report type="guideline"> <xp:summary> <xp:value-of select="$str2_1_ColorCoding_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str2_1_ColorCoding"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 2.2 --> <xp:category name="$Checkpoint2_2" href="$strRedir2_2"> <xp:rule> <xp:pattern priority="2"> <xp:report type="guideline"> <xp:summary> <xp:value-of select="$str2_2_ColorContrast_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str2_2_ColorContrast"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 3.1 --> <xp:category name="$Checkpoint3_1" href="$strRedir3_1"> <xp:rule> <xp:pattern priority="2"> <xp:report type="guideline"> <xp:summary> <xp:value-of select="$str3_1_MarkupNotImages_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str3_1_MarkupNotImages"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 3.2 --> <xp:category name="$Checkpoint3_2" href="$strRedir3_2"> <xp:rule> <xp:pattern priority="2"> <xp:report type="guideline"> <xp:summary> <xp:value-of select="$str3_2_MissingDOCTYPE_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str3_2_MissingDOCTYPE"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 3.3 --> <xp:category name="$Checkpoint3_3" href="$strRedir3_3"> <xp:rule> <xp:pattern priority="2"> <xp:report type="guideline"> <xp:summary> <xp:value-of select="$str3_3_StyleSheetsforLayout_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str3_3_StyleSheetsforLayout"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 3.4 --> <xp:category name="$Checkpoint3_4" href="$strRedir3_4"> <xp:rule> <xp:pattern priority="2"> <xp:report type="guideline"> <xp:summary> <xp:value-of select="$str3_4_AbsoluteValues_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str3_4_AbsoluteValues"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 3.5 --> <xp:category name="$Checkpoint3_5" href="$strRedir3_5"> <xp:rule context="//h1"> <xp:pattern match="//h2" is-assert="true" priority="2"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str3_5_HeadersForStructure_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str3_5_HeadersForStructure"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> <xp:rule context="//h2"> <xp:pattern match=" //h1 | //h3 " is-assert="true" priority="2"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str3_5_HeadersForStructure_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str3_5_HeadersForStructure"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> <xp:rule context="//h3"> <xp:pattern match=" //h2 | //h4 " is-assert="true" priority="2"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str3_5_HeadersForStructure_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str3_5_HeadersForStructure"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> <xp:rule context="//h4"> <xp:pattern match=" //h3 | //h5 " is-assert="true" priority="2"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str3_5_HeadersForStructure_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str3_5_HeadersForStructure"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> <xp:rule context="//h5"> <xp:pattern match=" //h4 | //h6" is-assert="true" priority="2"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str3_5_HeadersForStructure_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str3_5_HeadersForStructure"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> <xp:rule context="//h6"> <xp:pattern match=" //h5" is-assert="true" priority="2"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str3_5_HeadersForStructure_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str3_5_HeadersForStructure"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 3.6 --> <xp:category name="$Checkpoint3_6" href="$strRedir3_6"> <!--checks for li with ol ul dir--> <xp:rule context="//ol | //ul | //dir"> <xp:pattern match=".//li" is-assert="true" priority="2"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str3_6_NoListItemsWithOLULDIR_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str3_6_NoListItemsWithOLULDIR"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> <!--checks for dd and dt with dl--> <xp:rule context="//dl "> <xp:pattern match=".//dd | .//dt" is-assert="true" priority="2"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str3_6_NoDefinedTermDefinitionWithDL_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str3_6_NoDefinedTermDefinitionWithDL"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 3.7 --> <!-- following tests for use of <Q> and <BLOCKQUOTE>--> <xp:category name="$Checkpoint3_7" href="$strRedir3_7"> <xp:rule context="//html"> <xp:pattern match=".//q | .//blockquote" priority="2"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str3_7_QuoteBlockquote_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str3_7_QuoteBlockquote"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 4.1 --> <xp:category name="$Checkpoint4_1" href="$strRedir4_1"> <xp:rule> <xp:pattern priority="1"> <xp:report type="guideline"> <xp:summary> <xp:value-of select="$str4_1_LanguageChanges_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str4_1_LanguageChanges"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 5.1 --> <xp:category name="$Checkpoint5_1" href="$strRedir5_1"> <xp:rule context="//table"> <xp:pattern match=".//th" is-assert="true" priority="1"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str5_1_TableNoTH_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str5_1_TableNoTH"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 5.2 --> <xp:category name="$Checkpoint5_2" href="$strRedir5_2"> <xp:rule context="//table" > <!-- following tests: TABLE with or without TH AND without THEAD, TBODY, TFOOT, COL, COLGROUP, and "axis", "scope" and "headers" attributes.--> <xp:pattern match=".//thead | .//tfoot | .//tbody | .//col | .//colgroup | .//th[@scope |@axis |@headers]" is-assert="true" priority="1"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str5_2_TableNoTHeadTFootTBodyColColgroupAxisScopeHeaders_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str5_2_TableNoTHeadTFootTBodyColColgroupAxisScopeHeaders"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 5.3 --> <xp:category name="$Checkpoint5_3" href="$strRedir5_3"> <xp:rule context="//table"> <xp:pattern match="self::table" priority="2"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str5_3_LinearizeLayoutTable_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str5_3_LinearizeLayoutTable"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 5.4 --> <xp:category name="$Checkpoint5_4" href="$strRedir5_4"> <xp:rule context="//table"> <xp:pattern match="self::table" priority="2"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str5_4_FormatforLayoutTable_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str5_4_FormatforLayoutTable"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 6.1 --> <xp:category name="$Checkpoint6_1" href="$strRedir6_1"> <!-- checks for linked or embedded stylesheets --> <xp:rule context="//head"> <xp:pattern match=" .//link | .//style" priority="1"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str6_1_PossibleStyleSheet_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str6_1_PossibleStyleSheet"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> <!-- checks for inline styles --> <xp:rule context="//span"> <xp:pattern match=" @style " priority="1"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str6_1_PossibleStyleSheet_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str6_1_PossibleStyleSheet"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 6.2 --> <xp:category name="$Checkpoint6_2" href="$strRedir6_2"> <xp:rule> <xp:pattern priority="1"> <xp:report type="guideline"> <xp:summary> <xp:value-of select="$str6_2_DynamicContentSynch_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str6_2_DynamicContentSynch"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 6.3 --> <xp:category name="$Checkpoint6_3" href="$strRedir6_3"> <xp:rule context="//html"> <xp:pattern match=".//script[not(./ancestor::script)] | .//embed[not(./ancestor::object)] | .//object[not(./ancestor::object | script | applet)] | .//applet[not(./ancestor::applet | object | script)] " priority="1"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str6_3_PossibleProgrammaticObjects_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str6_3_PossibleProgrammaticObjects"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 6.4 --> <xp:category name="$Checkpoint6_4" href="$strRedir6_4"> <xp:rule context="(//script) | (//object) | (//embed) | (//applet) "> <xp:pattern match="@onchange | @onclick | @ondblclick | @onload | @onmousedown | @onmousemove | @onmouseout | @onmouseover | @onmouseup | @onreset | onsubmit | @onrunload " priority="2"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str6_4_EventHandlers_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str6_4_EventHandlers"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 6.5 --> <xp:category name="$Checkpoint6_5" href="$strRedir6_5"> <xp:rule> <xp:pattern priority="2"> <xp:report type="guideline"> <xp:summary> <xp:value-of select="$str6_5_DynamicContent_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str6_5_DynamicContent"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 7.1 --> <xp:category name="$Checkpoint7_1" href="$strRedir7_1"> <xp:rule> <xp:pattern priority="1"> <xp:report type="guideline"> <xp:summary> <xp:value-of select="$str7_1_ScreenFlicker_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str7_1_ScreenFlicker"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 7.2 --> <xp:category name="$Checkpoint7_2" href="$strRedir7_2"> <xp:rule context="//html"> <xp:pattern match=".//blink" priority="1"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str7_2_Blink_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str7_2_Blink"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 7.3 --> <xp:category name="$Checkpoint7_3" href="$strRedir7_3"> <xp:rule context="//script | //applet | //marquee"> <xp:pattern match="self::script | self::applet | self::marquee" priority="2"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str7_3_MovingContent_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str7_3_MovingContent"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 7.4 --> <xp:category name="$Checkpoint7_4" href="$strRedir7_4"> <xp:rule> <xp:pattern priority="2"> <xp:report type="guideline"> <xp:summary> <xp:value-of select="$str7_4_AutoRefresh_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str7_4_AutoRefresh"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 7.5 --> <xp:category name="$Checkpoint7_5" href="$strRedir7_5"> <xp:rule> <xp:pattern priority="2"> <xp:report type="guideline"> <xp:summary> <xp:value-of select="$str7_5_ReDirects_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str7_5_ReDirects"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 8.1 --> <xp:category name="$Checkpoint8_1" href="$strRedir8_1"> <!-- following tests: for SCRIPT with onmouseover, onclick, ondblclick --> <xp:rule context="//script"> <xp:pattern match="./following-sibling::onfocus | ./following-sibling::onblur | ./following-sibling::onselect | ./following-sibling::onmouseover | ./following-sibling::onclick | ./following-sibling::ondblclick" is-assert="true" priority="1"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str8_1_PossibleProgrammaticElements_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str8_1_PossibleProgrammaticElements"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> <!-- following tests: for APPLETS and OBJECT --> <xp:rule context="//applet | //object"> <xp:pattern match="self::applet | self::object" priority="1"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str8_1_PossibleProgrammaticElements_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str8_1_PossibleProgrammaticElements"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 9.1 --> <xp:category name="$Checkpoint9_1" href="$strRedir9_1"> <xp:rule context="//img | //input"> <xp:pattern match="@ismap" priority="1"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str9_1_ServerSideImageMap_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str9_1_ServerSideImageMap"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 9.2 --> <xp:category name="$Checkpoint9_2" href="$strRedir9_2"> <xp:rule context="//script | //applet | //embed"> <xp:pattern match="self::script | self::applet | self::embed" priority="2"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str9_2_ElementWithUI_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str9_2_ElementWithUI"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 9.3 --> <xp:category name="$Checkpoint9_3" href="$strRedir9_3"> <xp:rule context=" (//a) | (//button) | (//select) | (//frameset) | (//form) | (//area) | (//input) "> <xp:pattern match="@onchange | @onclick | @ondblclick | @onload | @onmousedown | @onmousemove | @onmouseout | @onmouseover | @onmouseup | @onreset | onsubmit | @onrunload " priority="2"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str9_3_DeviceDependentEventHandler_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str9_3_DeviceDependentEventHandler"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 10.1 --> <xp:category name="$Checkpoint10_1" href="$strRedir10_1"> <xp:rule> <xp:pattern priority="2"> <xp:report type="guideline"> <xp:summary> <xp:value-of select="$str10_1_PopUps_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str10_1_PopUps"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 10.2 --> <xp:category name="$Checkpoint10_2" href="$strRedir10_2"> <xp:rule context="//form"> <xp:pattern match=".//label" is-assert="true" priority="2"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str10_2_LabelWithFormControl_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str10_2_LabelWithFormControl"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> <xp:rule context="//label"> <xp:pattern match="@for" is-assert="true" priority="2"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str10_2_LabelWithFormControl_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str10_2_LabelWithFormControl"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 11.1 --> <xp:category name="$Checkpoint11_1" href="$strRedir11_1"> <xp:rule> <xp:pattern priority="2"> <xp:report type="guideline"> <xp:summary> <xp:value-of select="$str11_1_LatestW3CTechnologies_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str11_1_LatestW3CTechnologies"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 11.2 --> <xp:category name="$Checkpoint11_2" href="$strRedir11_2"> <xp:rule context="//html"> <xp:pattern match="//applet | //font | //basefont | //center | //isindex | //dir | //menu | //s | //strike | //u | //xmp | //listing | //plaintext" priority="2"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str11_2_DeprecatedElement_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str11_2_DeprecatedElement"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 11.4 --> <xp:category name="$Checkpoint11_4" href="$strRedir11_4"> <xp:rule> <xp:pattern priority="1"> <xp:report type="guideline"> <xp:summary> <xp:value-of select="$str11_4_AlternativeAccessiblePage_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str11_4_AlternativeAccessiblePage"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 12.1 --> <xp:category name="$Checkpoint12_1" href="$strRedir12_1"> <xp:rule context="//frame | //frameset | //iframe"> <!-- Tests for Frame, Frameset, iframe with no title attribute --> <xp:pattern match="@title" is-assert="true" priority="1"> <xp:report type="error"> <xp:summary> <xp:value-of select="$str12_1_NoTitleAttrib_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str12_1_NoTitleAttrib"/> </xp:message> </xp:report> </xp:pattern> <!-- Tests for empty title attribute in frames, frameset, iframe, noframes --> <xp:pattern match="@title[string-length( . ) = 0] " priority="1"> <xp:report type="error"> <xp:summary> <xp:value-of select="$str12_1_EmptyTitleAttrib_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str12_1_EmptyTitleAttrib"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> <!-- Tests for noframes with no title attribute--> <xp:rule context="//noframes/a"> <xp:pattern match="@title" is-assert="true " priority="1"> <xp:report type="error"> <xp:summary> <xp:value-of select="$str12_1_NoTitleAttrib_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str12_1_NoTitleAttrib"/> </xp:message> </xp:report> </xp:pattern> <!--Tests for noframes with empty title attribute--> <xp:pattern match="@title[string-length( . ) = 0] " priority="1"> <xp:report type="error"> <xp:summary> <xp:value-of select="$str12_1_EmptyTitleAttrib_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str12_1_EmptyTitleAttrib"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 12.2 --> <xp:category name="$Checkpoint12_2" href="$strRedir12_2"> <xp:rule context="//noframes"> <xp:pattern match=".//a[@href]" is-assert="true" priority="2"> <xp:report type="error"> <xp:summary> <xp:value-of select="$str12_2_NoframesWithoutHREF_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str12_2_NoframesWithoutHREF"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 12.3 --> <xp:category name="$Checkpoint12_3" href="$strRedir12_3"> <!--checks for form without fieldset --> <xp:rule context="//form "> <xp:pattern match=".//fieldset " is-assert="true" priority="2"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str12_3_FormNoFieldset_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str12_3_FormNoFieldset"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> <!--checks for form with fieldset and no legend --> <xp:rule context="//form[.//fieldset]"> <xp:pattern match=".//legend " is-assert="true" priority="2"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str12_3_FormAndFieldsetNoLegend_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str12_3_FormAndFieldsetNoLegend"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> <!-- checks for Select with no Optgroup --> <xp:rule context="//select"> <xp:pattern match=".//optgroup" is-assert="true" priority="2"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str12_3_SelectOptionandNoOptgroup_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str12_3_SelectOptionandNoOptgroup"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> <!-- checks for table with no caption--> <xp:rule context="//table"> <xp:pattern match=".//caption" is-assert="true" priority="2"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str12_3_TableandNoCaption_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str12_3_TableandNoCaption"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> <!-- checks for LI with no OL, UL, or DL --> <xp:rule context="//li[1] | //dd[1] | //dt[1]"> <xp:pattern match="//ol/li | //ul/li | //dd/dl | //dd/dt | //dir/li " is-assert="true" priority="2"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str12_3_ListNoULOLDL_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str12_3_ListNoULOLDL"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 12.4 --> <xp:category name="$Checkpoint12_4" href="$strRedir12_4"> <xp:rule context="//form | //label"> <!-- checks for form with no label and no for attrib--> <xp:pattern match=".//label | @for" is-assert= "true" priority="2"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str12_4_FormNoLabelNoFor_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str12_4_FormNoLabelNoFor"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 13.1 --> <xp:category name="$Checkpoint13_1" href="$strRedir13_1"> <xp:rule context="//a"> <xp:pattern match="(self::a[contains (., 'ClickHere')]) | (self::a[contains (., 'GoTo')]) | (self::a[contains (., 'Go')]) " priority="2"> <xp:report type="error"> <xp:summary> <xp:value-of select="$str13_1_ClickHereLinkTarget_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str13_1_ClickHereLinkTarget"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 13.2 --> <xp:category name="$Checkpoint13_2" href="$strRedir13_2"> <xp:rule> <xp:pattern priority="2"> <xp:report type="guideline"> <xp:summary> <xp:value-of select="$str13_2_SemanticInformationOrientation_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str13_2_SemanticInformationOrientation"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 13.3 --> <xp:category name="$Checkpoint13_3" href="$strRedir13_3"> <xp:rule> <xp:pattern priority="2"> <xp:report type="guideline"> <xp:summary> <xp:value-of select="$str13_3_ProvideLayoutInformation_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str13_3_ProvideLayoutInformation"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 13.4 --> <xp:category name="$Checkpoint13_4" href="$strRedir13_4"> <xp:rule> <xp:pattern priority="2"> <xp:report type="guideline"> <xp:summary> <xp:value-of select="$str13_4_ConsistentNavigation_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str13_4_ConsistentNavigation"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 14.1 --> <xp:category name="$Checkpoint14_1" href="$strRedir14_1"> <xp:rule> <xp:pattern priority="1"> <xp:report type="guideline"> <xp:summary> <xp:value-of select="$str14_1_ClearLanguage_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str14_1_ClearLanguage"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 1194_22_(l) --> <xp:category name="$Access_Board_Part_1194_22(l)"> <xp:rule context=".//script | .//object | .//embed | .//applet"> <xp:pattern match="self::script | self::object | self::embed | self::applet" priority="4"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str1194_22_(l)_AssistiveDeviceReadableScriptInfo_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str1194_22_(l)_AssistiveDeviceReadableScriptInfo"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 1194_22_(m) --> <xp:category name="$Access_Board_Part_1194_22(m)"> <xp:rule context=".//script | .//object | .//embed | .//applet"> <xp:pattern match="self::script | self::object | self::embed | self::applet" priority="4"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str1194_22_(m)_ClientSideAppletPlugInOrAppRequired_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str1194_22_(m)_ClientSideAppletPlugInOrAppRequired"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 1194_22_(n) --> <xp:category name="$Access_Board_Part_1194_22(n)"> <xp:rule context=".//form | .//legend | .//fieldset"> <xp:pattern match="self::form | self::legend | self::fieldset" priority="4"> <xp:report type="warning"> <xp:summary> <xp:value-of select="$str1194_22_(n)_OnlineElectronicForms_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str1194_22_(n)_OnlineElectronicForms"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 1194_22_(o) --> <xp:category name="$Access_Board_Part_1194_22(o)"> <xp:rule> <xp:pattern priority="4"> <xp:report type="guideline"> <xp:summary> <xp:value-of select="$str1194_22_(o)_SkipRepetitiveLinks_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str1194_22_(o)_SkipRepetitiveLinks"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> <!-- CATEGORY: 1194_22_(p) --> <xp:category name="$Access_Board_Part_1194_22(p)"> <xp:rule> <xp:pattern priority="4"> <xp:report type="guideline"> <xp:summary> <xp:value-of select="$str1194_22_(p)_TimeBasedResponseRequired_Summary"/> </xp:summary> <xp:message> <xp:value-of select="$str1194_22_(p)_TimeBasedResponseRequired"/> </xp:message> </xp:report> </xp:pattern> </xp:rule> </xp:category> </xp:ruleset>