diff --git a/Standards/WCAG2AAA/Sniffs/Principle1/Guideline1_3/1_3_1.js b/Standards/WCAG2AAA/Sniffs/Principle1/Guideline1_3/1_3_1.js index 6cd8807a..9be2cb4b 100755 --- a/Standards/WCAG2AAA/Sniffs/Principle1/Guideline1_3/1_3_1.js +++ b/Standards/WCAG2AAA/Sniffs/Principle1/Guideline1_3/1_3_1.js @@ -160,6 +160,23 @@ _global.HTMLCS_WCAG2AAA_Sniffs_Principle1_Guideline1_3_1_3_1 = { } } } + } else { + var formElems = labels[i].querySelectorAll('input,select,textarea,button,keygen,meter,output,progress'); + if (formElems.length > 1) { + HTMLCS.addMessage( + HTMLCS.ERROR, + labels[i], + 'This label has more than one form control implicitly associated as a child element.', + 'H44.MultipleControls' + ); + } else if (formElems.length !== 1) { + HTMLCS.addMessage( + HTMLCS.ERROR, + labels[i], + 'This label does not contain a "for" attribute and has no implicitly associated form controls.', + 'H44.NonExistent' + ); + } } }//end for }, diff --git a/Tests/WCAG2/1_3_1_Labels.html b/Tests/WCAG2/1_3_1_Labels.html index 8e920099..4e58e672 100755 --- a/Tests/WCAG2/1_3_1_Labels.html +++ b/Tests/WCAG2/1_3_1_Labels.html @@ -24,6 +24,9 @@ Assert: No Error *.F68 on #ariaLabelledByMulti Assert: Warning *.ARIA16,ARIA9 on #ariaLabelledByNotExist Assert: Error *.F68 on #ariaLabelledByNotExist +Assert: Error *.H44.NonExistent on #labelNoFor +Assert: No Error *.H44 on #labelImplicitFor +Assert: Error *.H44.MultipleControls on #labelImplicitForTooMany --> @@ -55,6 +58,20 @@ Labelled By Labelled By Multiple Entries - + + + + + +