function getClickableElements(selectorString, pattern) {
    var nodes = listElements(document.body, NodeFilter.SHOW_ELEMENT, function(n) {
        return n.offsetHeight && n.offsetWidth
            && getComputedStyle(n).cursor === "pointer"
            && (n.matches(selectorString)
                || pattern && (
                    pattern.test(n.textContent)
                    || pattern.test(n.getAttribute('aria-label')))
            );
    });
    return filterOverlapElements(nodes);
}
Get all clickable elements. SurfingKeys has its own logic to identify clickable elements, such as a `HTMLAnchorElement` or elements with cursor as pointer. This function provides two parameters to identify those clickable elements that SurfingKeys failed to identify.

@param {string} selectorString extra css selector of those clickable elements.
@param {regex} pattern a regular expression that matches text of the clickable elements.
@returns {array} array of clickable elements.

@example
var elms = getClickableElements("[rel=link]", /click this/);