Skip to content

Simplify primary navigation ARIA semantics #215

Description

@cmsjade5000

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.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions