code: function findFocusable (el, filter, shouldSearchRootNode) {
    const element = findDOMNode(el)
  
    if (!element || typeof element.querySelectorAll !== 'function') {
      return []
    }
  
    const focusableSelector = 'a[href],frame,iframe,object,input:not([type=hidden]),select,textarea,button,*[tabindex]'
    let matches = element.querySelectorAll(focusableSelector)
  
    if (shouldSearchRootNode && elementMatches(element, focusableSelector)) {
      matches = [...matches, element]
    }
  
    return [].slice.call(matches, 0).filter((el) => {
      if (typeof filter === 'function') {
        return filter(el) && focusable(el)
      } else {
        return focusable(el)
      }
    })
  }
docs: ---
  category: utilities/a11y
  ---
  
  Given an element, finds and returns all visible, focusable children.
  Focusable elements include input, select, textarea, button, and object.
  Anchor tags are also focusable if they include an href or
  tabindex attribute (including tabindeces less than zero).
  
  @param {ReactComponent|DomNode} el - component or DOM node
  @param {Function} filter - a function to filter the matching nodes
  @param {Boolean} shouldSearchRootNode - should the root node be included in the search
  @returns {Array} array of all tabbable children