diff --git a/src/lib/utils/focusTrap.js b/src/lib/utils/focusTrap.js index ddee34420..96856fcf0 100644 --- a/src/lib/utils/focusTrap.js +++ b/src/lib/utils/focusTrap.js @@ -12,8 +12,6 @@ const selectorTabbable = ` /** @type {import('svelte/action').Action} */ export default function focusTrap(node) { - const tabbable = Array.from(node.querySelectorAll(selectorTabbable)); - /** @type {(e:KeyboardEvent)=>void} */ function handleFocusTrap(e) { let isTabPressed = e.key === 'Tab' || e.keyCode === 9; @@ -22,6 +20,8 @@ export default function focusTrap(node) { return; } + const tabbable = Array.from(node.querySelectorAll(selectorTabbable)); + let index = tabbable.indexOf(document.activeElement ?? node); if (index === -1 && e.shiftKey) index = 0; index += tabbable.length + (e.shiftKey ? -1 : 1);