OAA LINK_4: Links that point to different HREFs should have different link text.
Rulesets
- WCAG 2.0 Requirement 2.4.9 Link Purpose (Link Only)
- Status: Accepted
- Severity: Violation
- Priority: Priority 1
- IITAA 1.0 9.1 Ensure that links are understandable out of context.
- Type:
- Severity: Violation
- Priority: Priority 1
- Status: Accepted
Markup References
Validation Code
Message
Ensure that links that point to different HREFs use different link text.
Dependencies
None
Context
document
Parameters
None
Code
function (ruleContext) {
var passed = true;
var loadArray = new Array();
var retArray = new Array();
for (var j = 0; j < ruleContext.links.length; j++) {
var link4Cmp = ruleContext.links[j].href.toLowerCase();
link4Cmp = link4Cmp.replace(/default.[a-z]*|index.[a-z]*/,'');
var obj = {
node: ruleContext.links[j],
text: util.getNodeTextRecursively(ruleContext.links[j]).toLowerCase(),
link4Cmp: link4Cmp
}; // endobj
loadArray[loadArray.length] = obj;
} // endfor
for (var j = 0; j < loadArray.length; j++) {
for (var k = j + 1; k < loadArray.length; k++) {
if (loadArray[j].text == loadArray[k].text && loadArray[j].link4Cmp != loadArray[k].link4Cmp) {
loadArray[j].sameLinkdiffURL = true; loadArray[k].sameLinkdiffURL = true;
passed = false;
} // endif
} // endfor
for (var j = 0; j < loadArray.length; j++) {
if (loadArray[j].sameLinkdiffURL) {
retArray.push(loadArray[j]);
} // endif
} // endfor
} // endfor
return new ValidationResult(passed, retArray, '', '', []);
} // endfunction
>
var passed = true;
var loadArray = new Array();
var retArray = new Array();
for (var j = 0; j < ruleContext.links.length; j++) {
var link4Cmp = ruleContext.links[j].href.toLowerCase();
link4Cmp = link4Cmp.replace(/default.[a-z]*|index.[a-z]*/,'');
var obj = {
node: ruleContext.links[j],
text: util.getNodeTextRecursively(ruleContext.links[j]).toLowerCase(),
link4Cmp: link4Cmp
}; // endobj
loadArray[loadArray.length] = obj;
} // endfor
for (var j = 0; j < loadArray.length; j++) {
for (var k = j + 1; k < loadArray.length; k++) {
if (loadArray[j].text == loadArray[k].text && loadArray[j].link4Cmp != loadArray[k].link4Cmp) {
loadArray[j].sameLinkdiffURL = true; loadArray[k].sameLinkdiffURL = true;
passed = false;
} // endif
} // endfor
for (var j = 0; j < loadArray.length; j++) {
if (loadArray[j].sameLinkdiffURL) {
retArray.push(loadArray[j]);
} // endif
} // endfor
} // endfor
return new ValidationResult(passed, retArray, '', '', []);
} // endfunction
>