Skip to content

fix: make the navigation drawer focus-safe and prevent desktop link clipping #346

Description

@Abhash-Chakraborty

Summary

Make the mobile navigation drawer behave as an accessible modal and verify the expanded route set at tablet/desktop widths.

Current gaps

The drawer closes with Escape but does not declare dialog semantics, trap/restore focus, or lock background scrolling. The 12-link desktop pill can also be clipped around the lg breakpoint because the page nav hides horizontal overflow.

Where to work

  • frontend/src/components/NavBar.tsx
  • frontend/src/app/layout.tsx
  • navigation/component and Playwright tests

Acceptance criteria

  • Drawer exposes labelled dialog/modal semantics.
  • Opening moves focus inside; Tab stays within; closing restores focus to the menu button.
  • Background content and scrolling are inert while open.
  • Route changes and Escape close the drawer.
  • Desktop navigation remains fully reachable at 1024, 1280, and 1440 px without clipping.
  • Add keyboard and viewport regression tests in both themes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    accessibilityKeyboard, screen reader, contrast, and inclusive UXbugSomething is broken and needs to be fixed.frontendFrontend UI, state, and Next.js workgssoc26Related to GirlScript Summer of Code 2026.level:intermediateGSSoC difficulty level: intermediate. Base contributor points: 35.priority: mediumUseful issue with moderate urgencystatus: availableOpen for contributors to pick uptestingAutomated tests or manual QA coverageui/uxUser interface, interaction, and visual polish

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions