diff --git a/packages/web-util/src/components/Header.tsx b/packages/web-util/src/components/Header.tsx index ac5bc89a6..527fce1b9 100644 --- a/packages/web-util/src/components/Header.tsx +++ b/packages/web-util/src/components/Header.tsx @@ -37,6 +37,7 @@ export function Header({ const closeButton = useRef(null); useEffect(() => { if (!open) return; + const toggle = menuButton.current; closeButton.current?.focus(); function closeOnEscape(event: KeyboardEvent): void { if (event.key === "Escape") { @@ -45,7 +46,14 @@ export function Header({ } } document.addEventListener("keydown", closeOnEscape); - return () => document.removeEventListener("keydown", closeOnEscape); + return () => { + document.removeEventListener("keydown", closeOnEscape); + // Closing removes the focused panel button; return focus to the toggle + // instead of leaving it on the page body. + if (document.activeElement === document.body) { + toggle?.focus(); + } + }; }, [open]); // const ns = useNotifications(); return (