Accessible navigation means your menus, links, and interactive controls can be operated by everyone — including people using only a keyboard or a screen reader. It depends on four things working together: a logical focus order, a visible focus indicator, skip links to bypass repeated content, and deliberate focus management when the interface changes.
Why navigation and focus matter
For a sighted mouse user, navigation is invisible plumbing. For someone who can’t use a mouse, it is the website. People with motor disabilities, blindness, or low vision move through pages using the keyboard’s Tab key, screen readers like NVDA, JAWS, or VoiceOver, or other assistive technology. If the focus order is scrambled, the focus indicator is missing, or a menu can’t be reached, those users are simply locked out. This guide builds directly on keyboard navigation — everything below assumes the keyboard is the primary tool.
This is also where a large share of ADA web lawsuits originate. Thousands of website-accessibility complaints are filed in the US each year, and inaccessible navigation — keyboard traps, unreachable menus, invisible focus — is among the most commonly cited barriers. Under the Operable principle of POUR, several WCAG 2.1 AA success criteria deal specifically with navigation and focus.
The WCAG criteria that govern navigation
The relevant rules sit mostly under WCAG’s Operable principle. These are the same standards referenced by ADA Title III enforcement and required for Section 508 conformance.
| Success criterion | Level | What it requires |
|---|---|---|
| 2.1.1 Keyboard | A | Everything works with a keyboard alone |
| 2.1.2 No Keyboard Trap | A | Focus can always move away from a component |
| 2.4.1 Bypass Blocks | A | A skip link or landmarks to skip repeated nav |
| 2.4.3 Focus Order | A | Focus moves in a meaningful, logical sequence |
| 2.4.7 Focus Visible | AA | A clearly visible focus indicator |
| 2.4.11 Focus Not Obscured | AA | Focused elements aren’t hidden by sticky bars (WCAG 2.2) |
The W3C’s Web Accessibility Initiative publishes the authoritative guidance, and WebAIM offers plain-language explanations of each criterion.
Skip links: bypassing repeated navigation
A skip link is a “Skip to main content” link that is the first focusable element on the page. Keyboard users press Tab once, see it, and press Enter to jump past a long menu straight to the content — instead of tabbing through dozens of nav items on every single page.
A correct skip link:
- Is the first item in the DOM and tab order.
- Points to the
idof your main content region (e.g.href="#main"). - Can be visually hidden until it receives focus, then becomes visible.
- Actually moves focus — the target element should be focusable so the next Tab continues from there.
Skip links work hand-in-hand with proper landmarks and heading structure. A <main> landmark gives screen-reader users another way to jump to content, so the two techniques reinforce each other.
Focus order: it has to make sense
Focus order is the sequence in which interactive elements receive focus as the user presses Tab. WCAG 2.4.3 requires that order to be logical and meaningful — generally matching the visual reading order: top to bottom, left to right.
Common focus-order failures we remediate:
- CSS-driven reordering. Flexbox
orderorpositionmoves elements visually but the DOM order — and therefore focus order — stays unchanged, so focus jumps around the screen. - Positive
tabindex. Values liketabindex="3"override the natural order and almost always create chaos. Use onlytabindex="0"(focusable, in order) andtabindex="-1"(focusable by script, not by Tab). - Focus reaching hidden content. Off-screen menus or
display-toggled panels that are still in the tab order let focus disappear into invisible elements.
The fix is almost always to correct the DOM order so it matches the visual layout, then verify by tabbing through the page from the top.
Visible focus: never delete the outline
When an element has keyboard focus, the browser draws a focus indicator — usually an outline. WCAG 2.4.7 requires it to be visible. The single most common offender is this line of CSS:
:focus { outline: none; }
It removes the outline globally and instantly fails the criterion, leaving keyboard users with no idea where they are. The right approach is to restyle, not remove: provide a high-contrast, clearly visible custom focus indicator. Use :focus-visible so the indicator shows for keyboard users without distracting mouse users, and make sure the indicator itself meets color-contrast requirements against its background.
Accessible menus and dropdowns
Navigation menus are where semantics and focus collide. A menu built from plain <a> links inside a <nav> landmark is the most robust pattern and needs little ARIA. Complexity — and bugs — arrive with dropdowns, mega-menus, and hamburger toggles.
For a disclosure-style dropdown (a button that reveals a submenu), the essentials are:
- A real
<button>toggle witharia-expanded="true"/"false"reflecting its state. - The submenu reachable and operable by keyboard, not hover-only.
- A visible focus indicator on every item, including nested ones.
- The Escape key closing the menu and returning focus to the toggle button.
Mobile hamburger menus add focus management: when the menu opens, move focus into it; when it closes, return focus to the hamburger button so the user isn’t dumped back at the top of the page.
Managing focus in dynamic interfaces
Modern sites change content without reloading — modals, off-canvas panels, accordions, single-page-app route changes. Each change demands deliberate focus management, because the keyboard and screen reader don’t move on their own.
The core rules:
- On open, move focus in. When a modal or panel opens, send focus to it (its heading or first control). Otherwise focus stays behind the overlay, invisible and confusing.
- Trap focus while open. Inside an open modal, Tab should cycle through the modal’s controls only — not leak to the page behind it. This satisfies user expectations without violating the no keyboard trap rule, because Escape always closes it.
- On close, restore focus. Return focus to the element that opened the dialog. The user picks up exactly where they left off.
- Announce route changes. In single-page apps, moving focus to the new page’s heading (or an appropriate live region) tells screen-reader users the content changed.
How to make your navigation accessible
Here is the repeatable process. Most of these issues are invisible until you put the mouse down and use the keyboard alone.
This is where automated scanners fall short. Tools catch a missing skip link or a low-contrast outline, but they can’t judge whether your focus order is meaningful or whether a modal returns focus correctly — that takes a human. See automated vs. manual accessibility testing for why a scanner alone can’t certify your navigation.
Why overlays can’t fix this
Accessibility overlay widgets — the kind that bolt a JavaScript snippet onto your site — promise instant compliance. They cannot deliver it for navigation. Focus order lives in your DOM, focus traps live in your event handlers, and menu semantics live in your markup. An overlay sitting on top can’t reliably rewrite any of that, which is one reason overlays don’t ensure ADA compliance and have themselves been named in lawsuits. The durable fix is manual remediation in the actual code — exactly the work Curbcut’s remediation team does by hand.
Get your navigation fixed
Navigation and focus are fixable, and they’re high-impact: they touch every page and every keyboard user. If you’d rather not crawl your site control-by-control, Curbcut’s team audits and remediates menus, skip links, focus order, and dynamic-UI focus to a documented WCAG 2.1 AA standard. Start with a free accessibility scan, or learn more about the official rules at ADA.gov and Section508.gov.
This guide is educational and not legal advice. For your specific obligations, consult a qualified attorney.