luhn-generator
Version:
A generator of numbers that passes the validation of Luhn algorithm or Luhn formula, also known as the 'modulus 10' or 'mod 10' algorithm
51 lines (43 loc) • 1.47 kB
JavaScript
import { findUpVirtual, isVisible } from '../commons/dom';
import { getRole } from '../commons/aria';
import { getAriaRolesByType } from '../commons/standards';
import { accessibleTextVirtual } from '../commons/text';
function landmarkUniqueMatches(node, virtualNode) {
/*
* Since this is a best-practice rule, we are filtering elements as dictated by ARIA 1.1 Practices regardless of treatment by browser/AT combinations.
*
* Info: https://www.w3.org/TR/wai-aria-practices-1.1/#aria_landmark
*/
var excludedParentsForHeaderFooterLandmarks = [
'article',
'aside',
'main',
'nav',
'section'
].join(',');
function isHeaderFooterLandmark(headerFooterElement) {
return !findUpVirtual(
headerFooterElement,
excludedParentsForHeaderFooterLandmarks
);
}
function isLandmarkVirtual(virtualNode) {
var { actualNode } = virtualNode;
var landmarkRoles = getAriaRolesByType('landmark');
var role = getRole(actualNode);
if (!role) {
return false;
}
var nodeName = actualNode.nodeName.toUpperCase();
if (nodeName === 'HEADER' || nodeName === 'FOOTER') {
return isHeaderFooterLandmark(virtualNode);
}
if (nodeName === 'SECTION' || nodeName === 'FORM') {
var accessibleText = accessibleTextVirtual(virtualNode);
return !!accessibleText;
}
return landmarkRoles.indexOf(role) >= 0 || role === 'region';
}
return isLandmarkVirtual(virtualNode) && isVisible(node, true);
}
export default landmarkUniqueMatches;