Goal
Make the primary site navigation use ordinary navigation semantics instead of menu semantics.
templates/base.html currently wraps the main nav links in role="menubar" and marks each link as role="menuitem". That pattern is usually intended for application-style menus with arrow-key behavior. Vault 966's header behaves like normal site navigation, so the extra roles may create inaccurate expectations for screen-reader and keyboard users.
Suggested Scope
- Remove or revise the
role="menubar" / role="menuitem" usage in the primary nav.
- Preserve
aria-current="page" on active links.
- Keep the bottom navigation semantics unchanged unless the same issue is present there.
- Confirm styling is unaffected.
Files or Areas
templates/base.html
tests/test_movies_ui.py
- Optional:
static/css/base.css only if styling depends on those roles, which it probably should not
Acceptance Criteria
- Primary navigation is exposed as a standard
<nav> with links.
- Active page state still uses
aria-current="page".
- Existing nav links and admin-only Health visibility are unchanged.
- Add or update a focused template test so the nav no longer emits
role="menubar" / role="menuitem" while still emitting active-page state.
Verification
pytest tests/test_movies_ui.py -k "aria_current or library_search_is_prominent"
- Manual check: open
/ui/movies, /ui/match, and /ui/watchlist and confirm the active nav link is still visually styled.
Contributor Notes
This is intentionally small and suitable for a first pull request. Please keep the change limited to semantics and tests; avoid broad navigation redesign or auth-role behavior changes.
Goal
Make the primary site navigation use ordinary navigation semantics instead of menu semantics.
templates/base.htmlcurrently wraps the main nav links inrole="menubar"and marks each link asrole="menuitem". That pattern is usually intended for application-style menus with arrow-key behavior. Vault 966's header behaves like normal site navigation, so the extra roles may create inaccurate expectations for screen-reader and keyboard users.Suggested Scope
role="menubar"/role="menuitem"usage in the primary nav.aria-current="page"on active links.Files or Areas
templates/base.htmltests/test_movies_ui.pystatic/css/base.cssonly if styling depends on those roles, which it probably should notAcceptance Criteria
<nav>with links.aria-current="page".role="menubar"/role="menuitem"while still emitting active-page state.Verification
pytest tests/test_movies_ui.py -k "aria_current or library_search_is_prominent"/ui/movies,/ui/match, and/ui/watchlistand confirm the active nav link is still visually styled.Contributor Notes
This is intentionally small and suitable for a first pull request. Please keep the change limited to semantics and tests; avoid broad navigation redesign or auth-role behavior changes.