Skip to content

Commit dbd4c0f

Browse files
devartifexCopilot
andcommitted
fix(a11y): hide mobile sidebar from keyboard when closed
Add visibility:hidden to the closed sidebar state on mobile so keyboard users cannot tab into off-screen navigation. The transition is staggered: visibility becomes hidden only after the slide-out animation completes (via visibility 0s <duration> delay), and becomes visible immediately when opening so the slide-in starts visible. The desktop override resets visibility:visible so the persistent sidebar is always focusable at ≥1024px. Fixes: #128 (comment) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 1754e68 commit dbd4c0f

1 file changed

Lines changed: 8 additions & 1 deletion

File tree

src/lib/components/layout/Sidebar.svelte

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -240,14 +240,20 @@
240240
display: flex;
241241
flex-direction: column;
242242
transform: translateX(-100%);
243+
visibility: hidden;
243244
transition: transform var(--duration-normal) var(--ease-default),
244-
width var(--duration-normal) var(--ease-default);
245+
width var(--duration-normal) var(--ease-default),
246+
visibility 0s var(--duration-normal);
245247
padding-top: env(safe-area-inset-top);
246248
padding-bottom: env(safe-area-inset-bottom);
247249
}
248250
249251
.sidebar.open {
250252
transform: translateX(0);
253+
visibility: visible;
254+
transition: transform var(--duration-normal) var(--ease-default),
255+
width var(--duration-normal) var(--ease-default),
256+
visibility 0s;
251257
}
252258
253259
.sidebar-backdrop {
@@ -463,6 +469,7 @@
463469
.sidebar {
464470
position: relative;
465471
transform: none;
472+
visibility: visible;
466473
width: 280px;
467474
flex-shrink: 0;
468475
}

0 commit comments

Comments
 (0)