diff --git a/packages/components/focus-trap/src/focus-trap.vue b/packages/components/focus-trap/src/focus-trap.vue index 42639d3cea..9758cbf916 100644 --- a/packages/components/focus-trap/src/focus-trap.vue +++ b/packages/components/focus-trap/src/focus-trap.vue @@ -172,7 +172,12 @@ export default defineComponent({ const relatedTarget = (e as FocusEvent) .relatedTarget as HTMLElement | null if (!isNil(relatedTarget) && !trapContainer.contains(relatedTarget)) { - tryFocus(lastFocusAfterTrapped, true) + // Give embedded focus layer time to pause this layer before reclaiming focus + setTimeout(() => { + if (!focusLayer.paused) { + tryFocus(lastFocusAfterTrapped, true) + } + }, 0) } } else { const target = e.target as HTMLElement | null