# V13-FE-006 — navigation contract hardening ## Scope - **WBS:** V13-FE-006 - **Requirement/API/UI/Test:** REQ-FE-NAV / Cross / UI-NAV-01 / T-FE-NAV-01 - **Source:** current `KsSideNavigation`, `navigationCatalog`, router meta, and existing AppShell tests. - **Change:** nested detail routes now activate their parent navigation item and expose `aria-current="page"`. - **Not changed:** route catalog, permissions, capability flags, menu labels, or navigation persistence. ## Evidence - Navigation contract test: 1 file / 2 tests passed. - Full frontend regression: 62 files / 162 tests passed. - `pnpm typecheck`: passed. - `pnpm build`: passed; known Vite >500 kB chunk warning remains. - Visual/AT/browser evidence remains outstanding. - Evidence: `evidence/V13-FE-006/navigation-contract_20260813.log`. - Menu search hardening: results now expose stable option IDs and the input tracks the active option through `aria-activedescendant`/`aria-controls`; empty results remove the active descendant. - Menu search contract test: 1 file / 2 tests passed. - Evidence: `evidence/V13-FE-006/menu-search-contract_20260813.log`. - Permission metadata hardening: navigation entries now preserve route permission metadata and expose a pure fail-closed `filterNavigationEntries` function. AppShell wiring remains deferred until a reactive approved auth source exists. - Catalog contract evidence: 3 files / 7 tests passed; typecheck and build passed. - Evidence: `evidence/V13-FE-006/navigation-permission-contract_20260813.log`. - Module section hardening: side navigation sections can collapse/expand with `aria-expanded`; route and permission behavior remain unchanged. - Targeted navigation test: 1 file / 3 tests passed; typecheck and build passed. - Evidence: `evidence/V13-FE-006/navigation-section-collapse_20260813.log`. - Breadcrumb hardening: `KsAppShell` now exposes `홈 → 현재 화면` through an accessible `현재 위치` navigation landmark using route metadata. - Breadcrumb contract test: 1 file / 2 tests passed; typecheck and build passed. - Evidence: `evidence/V13-FE-006/breadcrumb-contract_20260813.log`. - Browser contract evidence: Playwright snapshot confirmed shell landmarks, breadcrumb, and list-only top-level navigation. Parameterized detail routes are excluded from the catalog. - Evidence: `evidence/V13-FE-006/navigation-browser-contract_20260813.log`. - Mobile navigation hardening: added a responsive drawer toggle, backdrop close, Escape close, and explicit open/close labels without changing desktop route or permission behavior. - Evidence: `evidence/V13-FE-006/mobile-navigation-contract_20260813.log`. - Mobile browser evidence: at 390x844, menu open, drawer/backdrop close, and Escape close were reproduced with Playwright. - Evidence: `evidence/V13-FE-006/mobile-browser-contract_20260813.log`. - Focus hardening: mobile drawer now focuses its close control on open, traps Tab/Shift+Tab within drawer controls, and returns focus to the header menu button on close/Escape/backdrop. - Evidence: `evidence/V13-FE-006/mobile-focus-contract_20260813.log`.