_highlightMatchedOption(option, matchingString) {
    makeMatchingTextBold(option, matchingString);

    // For Safari, we need to add a label to the element
    if (option.textContent) {
      const a11ySpan = document.createElement('span');
      a11ySpan.setAttribute('aria-label', option.textContent.replace(/\s+/g, ' '));
      Array.from(option.childNodes).forEach(childNode => {
        a11ySpan.appendChild(childNode);
      });
      option.appendChild(a11ySpan);

      matchA11ySpanReverseFns.set(option, () => {
        Array.from(a11ySpan.childNodes).forEach(childNode => {
          option.appendChild(childNode);
        });
        if (option.contains(a11ySpan)) {
          option.removeChild(a11ySpan);
        }
      });
    }
  }
@overridable
@param {Element} option
@param {string} matchingString
@protected