(node)
| 117 | } |
| 118 | |
| 119 | function hasInteractiveDescendant(node) { |
| 120 | if (!node.childNodes) return false |
| 121 | let result = false |
| 122 | |
| 123 | for (const childNode of node.childNodes) { |
| 124 | if (isInteractive(childNode) || hasMeaningfulText(childNode)) return true |
| 125 | result = result || hasInteractiveDescendant(childNode) |
| 126 | } |
| 127 | |
| 128 | return result |
| 129 | } |
| 130 | |
| 131 | // Function to remove non-interactive elements recursively |
| 132 | function removeNonInteractive(node) { |
no test coverage detected