UNPKG

axe-core

Version:

Accessibility engine for automated Web UI testing

33 lines (26 loc) 983 B
import getElementStack from '../dom/get-element-stack'; import getTextElementStack from '../dom/get-text-element-stack'; /** * Get relevant stacks of block and inline elements, excluding line breaks * @method getRectStack * @memberof axe.commons.color * @param {Element} elm * @return {Array} */ function getRectStack(elm) { const boundingStack = getElementStack(elm); // Handle inline elements spanning multiple lines to be evaluated const filteredArr = getTextElementStack(elm); // If the element does not have multiple rects, like for display:block, return a single stack if (!filteredArr || filteredArr.length <= 1) { return [boundingStack]; } if (filteredArr.some(stack => stack === undefined)) { // Can be happen when one or more of the rects sits outside the viewport return null; } // add bounding client rect stack for comparison later filteredArr.splice(0, 0, boundingStack); return filteredArr; } export default getRectStack;