From ebba2397fc9739fff81688549d4366658794cca9 Mon Sep 17 00:00:00 2001 From: Geoff Rich <4992896+geoffrich@users.noreply.github.com> Date: Tue, 14 Jun 2022 08:50:55 -0700 Subject: [PATCH 1/2] Fix keyboard navigation issues on menu - move menu directory after toggle in DOM order - hide menu from keyboard with CSS when closed - automatically close menu when focus leaves - show focus on section toggles --- src/routes/tutorial/[slug]/_/Menu/Menu.svelte | 199 ++++++++++-------- 1 file changed, 113 insertions(+), 86 deletions(-) diff --git a/src/routes/tutorial/[slug]/_/Menu/Menu.svelte b/src/routes/tutorial/[slug]/_/Menu/Menu.svelte index b2e64270d..8920f1f9c 100644 --- a/src/routes/tutorial/[slug]/_/Menu/Menu.svelte +++ b/src/routes/tutorial/[slug]/_/Menu/Menu.svelte @@ -46,17 +46,112 @@ afterNavigate(() => { search = ''; }); + + /** + * @param {HTMLElement} node + */ + function close_when_focus_leaves(node) { + function handleFocusIn() { + if (!node.contains(document.activeElement)) { + is_open = false; + } + } + document.addEventListener('focusin', handleFocusIn) + + return { + destroy: () => { + document.removeEventListener('focusin', handleFocusIn); + } + } + } -