Skip to content

Navigation

Navigation answers two fundamental questions: “Where am I?” and “Where can I go?” Good navigation makes these answers obvious at a glance. Poor navigation leaves users feeling lost, frustrated, or stuck. Navigation is the wayfinding system that makes or breaks someone’s understanding of a digital product—it speaks to basic human needs like clarity and safety.

According to Nielsen Norman Group research, hidden navigation (like hamburger menus) provides a worse user experience than visible navigation across multiple UX metrics including task difficulty assessment, time spent on task, and task success. The choices you make about navigation patterns have measurable impact on how well users can accomplish their goals.

The relationship between IA and navigation

Section titled “The relationship between IA and navigation”

Information architecture (IA) defines how content is organized and related. Navigation is how users move through that structure. Before you can create navigation, your IA needs to be defined—navigation is just the visible tip of the iceberg.

IA research methods:

  • Card sorting: Discover how users naturally categorize content
  • Tree testing: Test if users can find items in proposed structure
  • LATCH framework: Organize by Location, Alphabet, Time, Category, or Hierarchy

Key principle: Group navigation items by how users think about their problems, not how your organization is structured internally.

Aim for no more than 3 levels of hierarchy. Deep nesting hides content and forces users through too many clicks.

Why shallow works:

  • Reduces cognitive load
  • Fewer clicks to reach content
  • Easier to maintain mental model
  • Better for mobile navigation

When you need depth:

  • Provide multiple entry points (search, shortcuts, cross-links)
  • Use mega menus to expose deeper content
  • Consider hub pages that surface related content

Navigation labels should be specific, descriptive, and consistent with page titles.

Label guidelines:

Instead ofUse
SolutionsProducts
ResourcesDocumentation
Get StartedSign Up
Learn MoreView Pricing

Testing labels:

  • Can users predict what they’ll find?
  • Do labels match the content they link to?
  • Are labels distinct from each other?
  • Do they work out of context (for screen readers)?

The most important destinations should be the most visible. Primary calls-to-action (CTAs) deserve visual prominence.

Visibility hierarchy:

  1. Primary CTA (sign up, purchase) — most prominent
  2. Main navigation — clearly visible
  3. Secondary navigation — available but less prominent
  4. Utility navigation (account, help) — accessible but subdued

Users need constant confirmation of where they are. Multiple cues reinforce location:

Current page indicators:

  • Highlight active item in navigation
  • Use distinct styling (color, weight, underline, background)
  • Maintain indicator when scrolling
  • Apply to all navigation levels

Page identity:

  • Page title matches navigation label clicked
  • URL reflects location in site structure
  • Browser tab shows meaningful title

Breadcrumbs show the path from homepage to current page, essential for deep hierarchies:

When to use breadcrumbs:

  • Sites with 3+ levels of hierarchy
  • E-commerce with category structures
  • Documentation and knowledge bases
  • Content that can be reached via multiple paths

Breadcrumb best practices:

  • Place at top of page, below global navigation
  • Use ”>” or ”/” as separators (users recognize these)
  • Make all items except current page clickable
  • Style current page distinctly (different color or bold)
  • Include home page as first item
  • Keep labels concise but clear

Accessibility:

  • Wrap in <nav> with aria-label="Breadcrumb"
  • Use <ol> for the ordered list of links
  • Mark current page with aria-current="page"
<nav aria-label="Breadcrumb">
<ol>
<li><a href="/">Home</a></li>
<li><a href="/products">Products</a></li>
<li><a href="/products/software">Software</a></li>
<li><a aria-current="page">Analytics Suite</a></li>
</ol>
</nav>

Respect the browser’s back button—it’s one of the most-used navigation controls.

History management:

  • Don’t break back button functionality
  • Avoid redirect loops
  • For SPAs, update URL with history API
  • For multi-step flows, provide explicit “Back” buttons

Multi-step flow navigation:

  • Show progress indicator
  • Allow return to previous steps
  • Preserve entered data when going back
  • Make it clear how to exit the flow

Use semantic elements to define page regions. Screen readers can jump directly between landmarks, making large pages much easier to navigate.

Core landmarks:

ElementPurposeNotes
<header>Site/page headerUsually contains logo and primary nav
<nav>Navigation menuCan have multiple; label each
<main>Primary contentOnly one per page
<aside>Related contentSidebars, call-outs
<footer>Site/page footerOften contains secondary nav
<section>Thematic groupingMust have heading; label if multiple
<article>Self-contained contentBlog posts, comments, cards

Labeling landmarks:

  • If multiple <nav> elements exist, each must have unique aria-label
  • <section> and <form> always need labels
  • Labels should describe purpose: “Primary navigation”, “Related articles”
<nav aria-label="Primary">
<!-- main site navigation -->
</nav>
<nav aria-label="Table of contents">
<!-- page-specific navigation -->
</nav>

Beyond landmarks, proper heading structure enables navigation:

Heading hierarchy:

  • One <h1> per page (usually page title)
  • Headings in logical order (h1 → h2 → h3)
  • Don’t skip levels
  • Screen reader users navigate by heading

Testing: Use a screen reader to navigate by headings. Can you understand the page structure from headings alone?

Skip links let keyboard users bypass repetitive navigation and jump to main content. They’re essential for screen reader users and helpful for all keyboard navigators.

Without skip links, keyboard users must tab through every navigation item on every page. According to one study, a user needed to press Tab 350 times to get past navigation to content. Skip links solve this.

Who benefits:

  • Screen reader users
  • Keyboard-only users
  • Switch control users
  • Users with motor impairments
  • Power users who want efficiency

Placement: First focusable element in <body>, before any navigation.

Target: Link to <main> or the main heading (<h1>).

<body>
<a href="#main" class="skip-link">Skip to main content</a>
<header>
<!-- navigation -->
</header>
<main id="main" tabindex="-1">
<h1>Page Title</h1>
<!-- content -->
</main>
</body>

Critical details:

  • Use tabindex="-1" on target to ensure focus moves
  • Link text should describe destination: “Skip to main content”
  • Link must be in tab order (don’t use tabindex="-1" on the link itself)

Skip links can be hidden until focused, revealing only to keyboard users:

.skip-link {
position: absolute;
top: -40px;
left: 0;
background: #000;
color: #fff;
padding: 8px 16px;
z-index: 100;
}
.skip-link:focus {
top: 0;
}

Important: Don’t hide skip links with display: none or visibility: hidden—these remove them from tab order entirely.

According to the WebAIM Million Report, only 17% of homepages have skip links, and one in six of those are broken or inaccessible. Implementing proper skip links puts you ahead of most websites.

Every keyboard user needs to see where they are on a page. Never remove focus outlines without adding a clear replacement.

WCAG 2.2 requirements:

  • Focus indicator must be visible
  • At least 3:1 contrast against adjacent colors (Focus Appearance Enhanced)
  • Focus area should be at least as large as a 2px perimeter

Focus indicator design:

/* Don't do this */
*:focus {
outline: none;
}
/* Do this instead */
:focus-visible {
outline: 3px solid #005fcc;
outline-offset: 2px;
}

Use :focus-visible: This CSS pseudo-class shows focus only for keyboard navigation, not mouse clicks, giving keyboard users clear indicators without affecting mouse users.

Tab order should match visual order. Focus should move left-to-right, top-to-bottom in LTR languages.

Common violations:

  • CSS that visually reorders content (flexbox order, grid placement)
  • Positive tabindex values that jump focus around
  • Modals that don’t trap focus
  • Dynamic content inserted above current focus

Testing: Tab through your page. Does focus move in the order you’d expect visually? Can you reach everything?

When content changes dynamically, focus must be managed programmatically:

After navigation (SPAs):

  • Move focus to new page’s <h1> or main content
  • Announce page change to screen readers
  • Client-side routing breaks focus by default—handle explicitly

After modal/dialog opens:

  • Move focus into the dialog
  • Trap focus within dialog (Tab cycles through dialog elements)
  • Return focus to trigger element when dialog closes

After content updates:

  • If user triggered update, move focus to new content or confirmation
  • Use aria-live regions for automatic announcements
  • Don’t move focus unexpectedly
// After SPA navigation
const mainContent = document.querySelector('main');
mainContent.setAttribute('tabindex', '-1');
mainContent.focus();
mainContent.removeAttribute('tabindex');

The standard pattern for primary site navigation.

Best for:

  • 5-7 main navigation items
  • Sites where primary destinations should always be visible
  • Desktop-first designs

Considerations:

  • Items must fit on one line (or have clear overflow handling)
  • Responsive behavior needed for mobile
  • Dropdowns need keyboard accessibility

Common in dashboards, admin interfaces, and documentation.

Benefits:

  • Can accommodate more items than horizontal
  • Natural scanning (left-side attention bias)
  • Can show hierarchy and expand/collapse
  • Persistent visibility while scrolling

Best for:

  • Content management systems
  • Dashboards with many sections
  • Documentation sites
  • Applications with complex feature sets

Large dropdown panels that show multiple categories and items.

When to use:

  • Large catalogs with many categories
  • When parent categories contain 8+ items
  • When showing content previews aids discovery

Mega menu guidelines:

  • Add images or icons to aid scanning
  • Group related items with clear headings
  • Include descriptions if category names aren’t self-evident
  • Ensure full keyboard accessibility
  • Provide “view all” links for categories

Research finding: Well-designed mega menus improve discoverability and can increase conversion rates for large catalogs (Baymard Institute).

Mobile navigation requires different approaches due to screen constraints.

Tab bar / Bottom navigation:

  • Persistent bar with 3-5 key destinations
  • Visible at all times (doesn’t hide content)
  • Best for apps with clear top-level sections
  • iOS and Android native pattern

Hamburger menu:

  • Hides navigation behind icon
  • Saves screen space
  • Content is less discoverable (users less likely to explore)
  • Use for secondary navigation or large menus

Research findings (NN/g 2024):

  • Hidden navigation is less discoverable than visible navigation
  • Users are less likely to use hidden navigation
  • When they do use it, they find items later in their task
  • Hamburger menus are more familiar than 10 years ago, but same UX tradeoffs apply

Combined approaches (recommended):

  • Bottom tab bar for primary destinations
  • Hamburger for comprehensive navigation
  • Amazon pattern: bottom bar (Home, Orders, Cart, Profile, More) + hamburger for additional options

For mobile, place primary navigation within thumb reach:

One-handed phone use (~67% of interactions):

  • Bottom of screen is easiest to reach
  • Top corners are hardest
  • Primary actions should be in easy zone

Design implication: Consider bottom navigation for mobile apps. Hamburger menus at top-left corner are harder to reach on larger phones.

Users expect consistent keyboard behavior:

KeyExpected Behavior
TabMove to next focusable element
Shift+TabMove to previous focusable element
EnterActivate button or link
SpaceActivate button, toggle checkbox
Arrow keysNavigate within components (menus, tabs)
EscapeClose modal, dropdown, cancel action
Home/EndJump to first/last item in list

Dropdown menus:

  • Enter/Space opens menu
  • Arrow keys navigate items
  • Escape closes menu, returns focus to trigger
  • First letter jumps to matching item

Tab panels:

  • Tab into tab list, then arrows between tabs
  • Tab shows corresponding panel
  • Panel content is next Tab stop

See also: ARIA & Keyboard Patterns for complete component patterns.

Show primary items visibly; hide secondary items behind interaction.

Strategies:

  • Horizontal nav → hamburger at breakpoint
  • Full menu → priority+ pattern (show what fits, “More” for rest)
  • Mega menu → accordion on mobile

Overlapping menus for deep navigation:

  • Submenu replaces parent menu (slides in)
  • Include “Back” link on all non-top-level panels
  • Better than nested accordions for complex structures

Accordion navigation:

  • Expand/collapse to show sub-items
  • Good for moderate depth (2-3 levels)
  • Keep expanded state visible

All navigation elements must meet touch target requirements:

  • Minimum: 44×44px (Apple HIG), 48×48dp (Material Design)
  • Spacing: At least 8px between touch targets
  • Padding: Increase tap area even if visual element is smaller

See Targets & Spacing for detailed guidance.

Nielsen Norman Group research (2024-2025) confirms that hidden navigation provides worse user experience than visible navigation across multiple UX metrics. While hamburger menus are more familiar today than 10 years ago, the fundamental tradeoffs remain: content is less discoverable and users are less likely to explore.

A 2024 study published in MDPI Information investigated adding floating action buttons (FAB) and labeled bottom icons to popular apps like YouTube and IMDb. Qualitative research with 40 users found the FAB improved user experience over traditional top-corner placement, supporting the thumb-zone design principle.

WCAG 2.2’s Focus Appearance (Enhanced) criterion recommends focus indicators with at least 3:1 contrast against adjacent colors, addressing one of the most common accessibility failures—invisible or low-contrast focus states.

The WebAIM Million Report found only 17% of the top one million homepages have skip links, and one in six of those are broken. 2024 research on skip links emphasizes they remain essential for keyboard users even when landmarks are present.

2025 IA trends analysis highlights AI capabilities for personalized navigation, including recommendation engines that adapt navigation based on user behavior, automated content categorization, and dynamic sitemap generation.

The WAI-ARIA 1.3 specification adds features to improve interoperability with assistive technologies, providing enhanced capabilities for creating accessible navigation patterns in modern web applications.

2025 accessibility development guides emphasize that client-side routing breaks focus by default. After SPA navigation, developers must programmatically set focus to the new page’s <h1> or main content to maintain accessibility.

  • Information architecture: Structure tested with card sorting/tree testing
  • Hierarchy depth: No more than 3 levels without additional entry points
  • Labels: Specific, descriptive, match page content
  • Current location: Active state visible in navigation
  • Breadcrumbs: Present for deep hierarchies (3+ levels)
  • Semantic landmarks: <header>, <nav>, <main>, <footer> used correctly
  • Landmark labels: Multiple same-type landmarks have unique labels
  • Skip link: First focusable element, targets main content
  • Focus visible: Clear focus indicator with 3:1 contrast
  • Focus order: Matches visual order
  • Keyboard operable: All navigation works with keyboard alone
  • Focus management: Handled for dynamic content and SPAs
  • Mobile pattern: Appropriate pattern for content (tab bar, hamburger, hybrid)
  • Touch targets: Minimum 44×44px with adequate spacing
  • Thumb zone: Primary actions in easy reach for one-handed use
  • Consistent experience: Navigation works across all breakpoints

Foundational Resources:

Research & Guidelines:

Implementation:

2024-2025 Research: