UNPKG

axe-core

Version:

Accessibility engine for automated Web UI testing

36 lines (31 loc) 1 kB
/*global dom, axe */ /** * Get elements referenced via a space-separated token attribute; * it will insert `null` for any Element that is not found * @method idrefs * @memberof axe.commons.dom * @instance * @param {HTMLElement} node * @param {String} attr The name of attribute * @return {Array|null} Array of elements (or `null` if not found) * * NOTE: When in a shadow DOM environment: ID refs (even for slotted content) * refer to the document in which the element is considered to be in the * "light DOM". Therefore, we use getElementById on the root node and not QSA * on the flattened tree to dereference idrefs. * */ dom.idrefs = function (node, attr) { 'use strict'; var index, length, doc = dom.getRootNode(node), result = [], idrefs = node.getAttribute(attr); if (idrefs) { idrefs = axe.utils.tokenList(idrefs); for (index = 0, length = idrefs.length; index < length; index++) { result.push(doc.getElementById(idrefs[index])); } } return result; };