How to Make Your Website Navigation Accessible (Without Rewriting Your Code)


Your website’s navigation is the front door to everything you offer. If visitors can’t use your menus, they can’t find your products, read your content, or contact you. For the roughly 1.3 billion people worldwide who live with a disability, inaccessible navigation isn’t just annoying — it’s a locked door.

The good news? Most navigation accessibility problems are fixable without rebuilding your site from scratch. Whether you use WordPress, Shopify, Squarespace, or a custom-built site, the principles are the same. This guide walks you through the most common navigation barriers and shows you how to fix them in plain language.

Why Navigation Accessibility Matters Right Now

Two major legal developments make navigation accessibility urgent for every website owner:

The European Accessibility Act (EAA) requires websites and digital services offered to EU consumers to meet accessibility standards. Enforcement is active across member states, and navigation is one of the first things auditors check.

ADA lawsuits in the United States continue to rise, with over 4,000 web accessibility cases filed in 2025 alone. Navigation issues appear in nearly every complaint because they affect the ability to use the entire site.

Beyond legal risk, inaccessible navigation hurts your business. If keyboard users can’t open your dropdown menus, if screen reader users can’t understand your menu structure, or if mobile users can’t operate your hamburger menu — you’re losing customers.

When someone who uses a keyboard (no mouse) visits your site, they press the Tab key to move through interactive elements. Without a skip link, they must tab through your entire header, logo, and navigation menu on every single page before reaching the main content. Imagine pressing Tab 30 times before you can read an article.

How to Check

  1. Open your website in Chrome or Firefox
  2. Click somewhere in the browser’s address bar
  3. Press the Tab key once
  4. If you see a “Skip to content” or “Skip to main content” link appear at the top of the page, you have a skip link
  5. If Tab goes straight to your first menu item without showing a skip link, you need to add one

How to Fix It

Most modern website platforms have a way to add skip links:

  • WordPress: Many themes include skip links by default. Check by tabbing into your site. If missing, install the “WP Accessibility” plugin, which adds a skip link automatically.
  • Shopify: Check your theme settings. If your theme lacks a skip link, add this to your theme’s theme.liquid file just inside the <body> tag: a link with the text “Skip to content” that points to your main content area.
  • Squarespace: Squarespace adds skip links automatically in most recent templates. If yours is missing, add it via Code Injection in site settings.
  • Custom sites: Your developer can add a skip link in under 15 minutes. It’s an anchor link that is visually hidden until it receives keyboard focus.

Problem 2: Dropdown Menus That Only Work With a Mouse

Dropdown menus are everywhere, but many only open on mouse hover. If you can’t hover (because you use a keyboard, a switch device, or a screen reader), you can never access the submenu items.

How to Check

  1. Open your website
  2. Press Tab until you reach a menu item that has a dropdown submenu
  3. Press Enter or the Space bar
  4. If the dropdown opens and you can Tab through the submenu items, it works
  5. If nothing happens, or if the dropdown opens but you can’t reach the items inside it, the dropdown is inaccessible

How to Fix It

  • WordPress: Switch to a theme that advertises WCAG compliance or keyboard-accessible navigation. The default Twenty Twenty-Four theme includes keyboard-accessible dropdowns out of the box. You can also use the “WP Accessibility” plugin to add keyboard enhancements to existing menus.
  • Shopify: Check the Shopify Theme Store for themes labeled “accessibility optimized.” If modifying your current theme, ensure dropdown triggers have both onclick and onkeydown handlers.
  • Squarespace: Squarespace 7.1 templates handle dropdown keyboard interaction reasonably well. If you’re on an older 7.0 template, consider migrating.
  • Any platform: The key requirement is that dropdown menus must be operable with Enter/Space to open and Escape to close. Arrow keys should move between menu items, and Tab should move to the next top-level item.

Problem 3: Screen Readers Can’t Understand Your Menu Structure

A sighted user sees your navigation as a horizontal bar with clickable items. A screen reader user hears a flat list of links unless the navigation is coded with proper semantic structure. Without the right HTML elements and ARIA attributes, a screen reader might announce “link, Home, link, About, link, Products, link, Widget A, link, Widget B” — making it impossible to tell which items are top-level and which are submenu children.

How to Check

If you’re comfortable using browser DevTools (right-click, Inspect Element):

  1. Look at your navigation HTML
  2. Check if the menu is wrapped in a <nav> element
  3. Check if menu items are inside <ul> and <li> elements (unordered lists)
  4. Check if dropdown parent items have aria-expanded attributes

If you’re not comfortable with code, use the free WAVE browser extension:

  1. Install WAVE for Chrome or Firefox
  2. Navigate to your site and click the WAVE icon
  3. Look for errors related to navigation structure, missing landmarks, or ARIA issues

How to Fix It

The correct structure for accessible navigation uses:

  • A <nav> wrapper element with an aria-label (like “Main navigation”)
  • An unordered list (<ul>) containing list items (<li>)
  • Links (<a>) inside each list item
  • Nested <ul> elements for submenus
  • aria-expanded="true" or "false" on parent items that have submenus

If your platform generates navigation with <div> elements instead of lists, this is a theme or template issue. Contact your theme developer or switch to a theme that uses semantic navigation markup.

Problem 4: Your Mobile Hamburger Menu Is Inaccessible

The hamburger menu (three horizontal lines) that appears on mobile devices is frequently one of the least accessible components on a website. Common problems include:

  • The hamburger button has no accessible name (screen readers say “button” with no label)
  • Opening the menu doesn’t move keyboard focus into the menu
  • You can’t close the menu with the Escape key
  • You can Tab behind the open menu to elements that should be hidden

How to Check

  1. Open your site on a mobile device or resize your browser until the hamburger menu appears
  2. Try using only your keyboard: Tab to the hamburger icon, press Enter to open it, Tab through the menu items, and press Escape to close it
  3. When the menu is open, press Tab repeatedly — focus should stay within the menu, not go behind it

How to Fix It

An accessible hamburger menu needs four things:

  1. A clear label: The button should have either visible text (“Menu”) or an aria-label="Open navigation menu"
  2. Focus management: When the menu opens, focus moves to the first menu item. When it closes, focus returns to the hamburger button
  3. Keyboard closing: Pressing Escape closes the menu
  4. Focus trapping: While the menu is open, Tab and Shift+Tab cycle through only the menu items, not the hidden page behind it

Most platform themes handle some of these requirements but rarely all four. Test yours and file specific bug reports with your theme developer for any that fail.

Problem 5: Missing or Misleading Breadcrumbs

Breadcrumbs show the user’s location in your site hierarchy (Home > Products > Widgets). When done correctly, they help both sighted users and screen reader users understand where they are and navigate back up. When done incorrectly, they add noise without providing useful navigation.

How to Check

  1. Navigate to a deep page on your site (not the homepage)
  2. Look for a breadcrumb trail near the top of the page
  3. If you see one, right-click it and “Inspect Element”
  4. Check if it uses a <nav> element with aria-label="Breadcrumb" and an ordered list (<ol>)
  5. Check if the current page in the breadcrumb is marked with aria-current="page"

How to Fix It

If your platform supports breadcrumbs:

  • WordPress: Use a plugin like Yoast SEO or Breadcrumb NavXT, which generate accessible breadcrumb markup by default
  • Shopify: Many themes include breadcrumbs. Check that the current page uses aria-current="page"
  • Squarespace: Breadcrumb support varies by template. Check your template’s documentation

The separator between breadcrumb items (often ”/” or ”>”) should be added via CSS rather than as text content, so screen readers don’t read “Home slash Products slash Widgets.”

Screen reader users often navigate by pulling up a list of all links on a page. If your navigation contains links like “Click here,” “Read more,” or “Learn more” without additional context, users see a list of identical link names with no way to distinguish between them.

How to Check

  1. Install the WAVE browser extension
  2. Run it on your page
  3. Click the “Structure” tab
  4. Review the list of links
  5. If you see multiple links with the same text (like five “Read more” links), each one needs unique context

How to Fix It

Every link should make sense when read on its own. Instead of “Read more,” use “Read more about our accessibility audit service.” If your design requires short link text, add an aria-label attribute with the full descriptive text.

For navigation menu links specifically, use clear and specific link text:

  • Instead of “Services,” consider “Our Services” if there’s potential ambiguity
  • Instead of an icon-only link, add aria-label text that describes the destination
  • For social media icons in your header or footer, label each one: “Follow us on Twitter,” “Our Facebook page,” etc.

Your Quick Navigation Accessibility Checklist

Here’s what to check today:

  • Skip link: Tab into your site and verify a “Skip to content” link appears
  • Keyboard dropdowns: Tab to dropdown menus and verify they open with Enter/Space
  • Escape to close: Press Escape on any open dropdown or mobile menu — it should close
  • Semantic markup: Navigation uses <nav>, <ul>, and <li> elements (check with WAVE)
  • Hamburger menu label: Mobile menu button is labeled for screen readers
  • Focus trapping: Open mobile menu traps focus inside itself
  • Breadcrumbs: Deep pages have breadcrumbs with aria-current="page" on the current item
  • Link text: No generic “Click here” or “Read more” links in navigation

Fixing even three or four of these issues will dramatically improve the experience for keyboard users, screen reader users, and users with motor disabilities who rely on clear, predictable navigation.


We’re building a simple accessibility checker for non-developers — no DevTools, no jargon. Join our waitlist to get early access.