diff --git a/web/src/app/globals.css b/web/src/app/globals.css index 19fca39..f6c4357 100644 --- a/web/src/app/globals.css +++ b/web/src/app/globals.css @@ -186,6 +186,16 @@ body { outline-offset: 2px; } +/* Skip-to-content link (keyboard accessibility) */ +.skip-to-content { + position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; z-index: 9999; +} +.skip-to-content:focus { + position: fixed; top: 8px; left: 8px; width: auto; height: auto; + padding: 12px 24px; background: var(--cm-surface-elevated); color: var(--cm-accent); + border: 2px solid var(--cm-accent); border-radius: 8px; font-size: 14px; font-weight: 600; text-decoration: none; +} + /* Respect user motion preference */ @media (prefers-reduced-motion: reduce) { *, *::before, *::after { diff --git a/web/src/app/layout.tsx b/web/src/app/layout.tsx index c0bcdb5..948d8e4 100644 --- a/web/src/app/layout.tsx +++ b/web/src/app/layout.tsx @@ -55,6 +55,7 @@ export default function RootLayout({ + Skip to content {children}