visible-text-nodes.js 610 B

123456789101112131415161718192021222324252627
  1. import isVisible from '../dom/is-visible';
  2. /**
  3. * Returns an array of visible text virtual nodes
  4. *
  5. * @method visibleTextNodes
  6. * @memberof axe.commons.text
  7. * @instance
  8. * @param {VirtualNode} vNode
  9. * @return {VitrualNode[]}
  10. */
  11. function visibleTextNodes(vNode) {
  12. const parentVisible = isVisible(vNode.actualNode);
  13. let nodes = [];
  14. vNode.children.forEach(child => {
  15. if (child.actualNode.nodeType === 3) {
  16. if (parentVisible) {
  17. nodes.push(child);
  18. }
  19. } else {
  20. nodes = nodes.concat(visibleTextNodes(child));
  21. }
  22. });
  23. return nodes;
  24. }
  25. export default visibleTextNodes;