landmark-has-body-context-matches.js 474 Bytes
import { findUpVirtual } from '../commons/dom';

function landmarkHasBodyContextMatches(node, virtualNode) {
	const nativeScopeFilter = 'article, aside, main, nav, section';

	// Filter elements that, within certain contexts, don't map their role.
	// e.g. a <header> inside a <main> is not a banner, but in the <body> context it is
	return (
		node.hasAttribute('role') || !findUpVirtual(virtualNode, nativeScopeFilter)
	);
}

export default landmarkHasBodyContextMatches;