orElement>} anchors
   * @param {HTMLElement} panel
   * @param {HTMLElement} dfn
   * @returns
   */
  function createTrapListener(anchors, panel, dfn) {
    const lastIndex = anchors.length - 1;
    let currentIndex = 0;
    return event => {
      switch (event.key) {
        // Hitting "Tab" traps us in a nice loop around elements.
        case "Tab": {
          event.preventDefault();
          currentIndex += event.shiftKey ? -1 : +1;
          if (currentIndex < 0) {
            currentIndex = lastI