axe-core
Version:
Accessibility engine for automated Web UI testing
16 lines (12 loc) • 507 B
JavaScript
import { getRootNode, isFocusable } from '../commons/dom';
import { isAccessibleRef } from '../commons/aria';
import { escapeSelector } from '../core/utils';
function duplicateIdActiveMatches(node) {
const id = node.getAttribute('id').trim();
const idSelector = `*[id="${escapeSelector(id)}"]`;
const idMatchingElms = Array.from(
getRootNode(node).querySelectorAll(idSelector)
);
return !isAccessibleRef(node) && idMatchingElms.some(isFocusable);
}
export default duplicateIdActiveMatches;