axe-core
Version:
Accessibility engine for automated Web UI testing
22 lines (20 loc) • 554 B
JavaScript
/**
* Array#sort callback to sort nodes by DOM order
* @private
* @param {Node} nodeA
* @param {Node} nodeB
* @return {Integer} @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Sort
*/
axe.utils.nodeSorter = function nodeSorter(nodeA, nodeB) {
/*eslint no-bitwise: 0 */
nodeA = nodeA.actualNode || nodeA;
nodeB = nodeB.actualNode || nodeB;
if (nodeA === nodeB) {
return 0;
}
if (nodeA.compareDocumentPosition(nodeB) & 4) {
return -1; // a before b
} else {
return 1; // b before a
}
};