UNPKG

axe-core

Version:

Accessibility engine for automated Web UI testing

18 lines (14 loc) 673 B
if (!options || !options.selector || typeof options.selector !== 'string') { throw new TypeError('visible-in-page requires options.selector to be a string'); } let elms = axe.utils.querySelectorAll(virtualNode, options.selector); // Filter elements that, within certain contexts, don't map their role. // e.g. a <footer> inside a <main> is not a banner, but in the <body> context it is if (typeof options.nativeScopeFilter === 'string') { elms = elms.filter(elm => { return (elm.actualNode.hasAttribute('role') || !axe.commons.dom.findUpVirtual(elm, options.nativeScopeFilter)); }); } this.relatedNodes(elms.map(elm => elm.actualNode)); return elms.length <= 1;