axe-core
Version:
Accessibility engine for automated Web UI testing
33 lines (23 loc) • 737 B
JavaScript
function getBaseLang (lang) {
return lang.trim().split('-')[0].toLowerCase();
}
var langs, invalid;
langs = (options ? options : axe.commons.utils.validLangs()).map(getBaseLang);
invalid = ['lang', 'xml:lang'].reduce(function (invalid, langAttr) {
var langVal = node.getAttribute(langAttr);
if (typeof langVal !== 'string') {
return invalid;
}
var baselangVal = getBaseLang(langVal);
// Edge sets lang to an empty string when xml:lang is set
// so we need to ignore empty strings here
if (baselangVal !== '' && langs.indexOf(baselangVal) === -1) {
invalid.push(langAttr + '="' + node.getAttribute(langAttr) + '"');
}
return invalid;
}, []);
if (invalid.length) {
this.data(invalid);
return true;
}
return false;