OAA ACCESSKEY_1: Accesskey attribute values should be unique.
Rulesets
- WCAG 2.0 Requirement 2.1.3 Keyboard (No Exception)
- Status: Accepted
- Severity: Violation
- Priority: Priority 2
- IITAA 1.0 10.1 Provide labels or titles for all form fields.
- Type:
- Severity: Violation
- Priority: Priority 2
- Status: Accepted
Markup References
- HTML4: a[accesskey]
- HTML4: button[accesskey]
- HTML4: input[accesskey]
- HTML4: select[accesskey]
- HTML4: textarea[accesskey]
Validation Code
Message
Accesskey attribute values should be unique.
Dependencies
None
Context
*[@accesskey]
Parameters
None
Code
function (ruleContext) {
var accesskey = util.getValueFromAttributes(ruleContext, ['accesskey'], "");
var xp = "//*[@accesskey='" + accesskey + "']";
var xpathResult = OpenAjax.a11y.xpath.evaluate(xp, ruleContext.ownerDocument, util.defaultNSResolver, OpenAjax.a11y.xpath.XPathResult.ANY_TYPE, null);
var count = 0;
var r = xpathResult.iterateNext();
while (r && count < 2) {
count++;
r = xpathResult.iterateNext();
} // endwhile
var passed = (count < 2);
return new ValidationResult(passed, [ruleContext], 'accesskey', '', []);
} // endfunction
>
var accesskey = util.getValueFromAttributes(ruleContext, ['accesskey'], "");
var xp = "//*[@accesskey='" + accesskey + "']";
var xpathResult = OpenAjax.a11y.xpath.evaluate(xp, ruleContext.ownerDocument, util.defaultNSResolver, OpenAjax.a11y.xpath.XPathResult.ANY_TYPE, null);
var count = 0;
var r = xpathResult.iterateNext();
while (r && count < 2) {
count++;
r = xpathResult.iterateNext();
} // endwhile
var passed = (count < 2);
return new ValidationResult(passed, [ruleContext], 'accesskey', '', []);
} // endfunction
>