Skip to main content

The Landmark Problem: Why Missing Navigation Structure Breaks Digital Access

MarcusSeattle area
digitalwcagdevelopmentuser experience
A product designer using a computer for 3D furniture modeling in an office setting.
Photo by cottonbro studio on Pexels

I've been staring at this account settings page for the past hour, and it's got me thinking about something that keeps me up at night: how we've managed to build increasingly sophisticated web applications while completely forgetting the foundational elements that make them usable.

This particular page—a fairly standard account settings interface—demonstrates a pattern I see constantly in modern web development. The visual design is clean, the functionality works perfectly for mouse users, and the code probably passes most automated accessibility tests. But for screen reader users? It's essentially a digital maze with no map.

The Invisible Architecture Problem

The static analysis reveals three critical structural failures (opens in new window): missing <main>, <nav>, and <header> landmarks. These aren't just technical checkboxes—they're the digital equivalent of removing all the signs from a building and expecting visitors to find their way around.

When a screen reader user lands on this page, they have no way to quickly orient themselves or navigate efficiently. They can't skip to the main content, can't identify navigation areas, and can't understand the page's overall structure. Instead, they're forced to listen to every single element in sequence, hoping to eventually find what they need.

This connects directly to what our research on The Assistive Technology Evolution Paradox identified: as assistive technology becomes more sophisticated, basic structural failures become even more problematic. Modern screen readers can do amazing things—but only when developers provide the foundational landmarks they need to navigate.

Understanding WCAG's Landmark Requirements

The WCAG 2.1 guidelines (opens in new window) require meaningful page structure under Success Criterion 1.3.1 (Info and Relationships) and 2.4.1 (Bypass Blocks). The landmark elements serve specific purposes:

  • <main>: Identifies the primary content area, allowing users to skip directly to what matters
  • <nav>: Marks navigation sections so users can find or avoid them as needed
  • <header>: Defines page or section headers, providing context and orientation

Without these landmarks, we're essentially building applications that work perfectly for sighted users while creating an accessibility experience that violates basic civil rights principles.

The Real-World Impact

Let me paint you a picture of what this actually means. Sarah, a blind developer I know, describes navigating landmark-free pages as "being dropped into the middle of a conversation with no context." She has to listen to potentially hundreds of elements—form fields, buttons, text snippets—trying to mentally construct a map of functionality that sighted users get instantly.

On this account settings page, she'd encounter:

  • Notification toggles with no clear grouping
  • Theme selection options scattered among other controls
  • API key management buried somewhere in the middle
  • A critical "Delete account" action with no structural warning

Each missing landmark represents dozens of extra keystrokes, minutes of additional navigation time, and cognitive overhead that compounds across every interaction.

The Development Reality Check

Here's what frustrates me about this particular case: adding these landmarks requires maybe ten minutes of developer time. We're not talking about complex ARIA implementations or custom widget accessibility. We're talking about wrapping existing content in semantic HTML elements.

<header>
  <h1>Account Settings</h1>
</header>

<main>
  <section aria-labelledby="notifications-heading">
    <h2 id="notifications-heading">Notifications</h2>
    <!-- notification controls -->
  </section>
  
  <section aria-labelledby="display-heading">
    <h2 id="display-heading">Display</h2>
    <!-- theme controls -->
  </section>
</main>

The operational capacity required here is minimal—any developer can implement this. The impact on user experience is enormous.

Why This Keeps Happening

Our research on The Implementation Crisis identified a key pattern: organizations often focus on complex accessibility features while ignoring fundamental structural requirements. Teams spend hours debating ARIA label strategies while shipping pages that lack basic landmarks.

I suspect this happens because landmarks feel invisible to the development process. Unlike a broken button or misaligned text, missing landmarks don't create obvious visual problems. They fail silently, affecting only users that many development teams never directly interact with.

According to the Pacific ADA Center's guidance on web accessibility (opens in new window), structural accessibility isn't optional polish—it's foundational infrastructure that determines whether disabled users can access your application at all.

Building Better Defaults

What I'd love to see is development teams treating landmarks like any other architectural requirement. Just as you wouldn't ship a database without proper indexing, you shouldn't ship a web page without proper semantic structure.

Some practical steps that actually work:

For individual developers: Use browser extensions like axe DevTools (opens in new window) that flag missing landmarks during development. Make landmark validation part of your local testing routine.

For teams: Include landmark requirements in your definition of done. Code reviews should check for semantic structure just like they check for performance or security issues.

For organizations: Invest in accessibility testing that goes beyond automation. Automated tools caught these landmark issues, but they can't tell you whether your landmark structure actually makes sense for real users.

The Bigger Picture

This account settings page represents something larger: the gap between our technical capabilities and our commitment to equal access. We can build applications that integrate with AI services, handle millions of users, and deploy across global infrastructure. But we're still shipping interfaces that exclude disabled users through basic structural oversights.

The solution isn't more complex accessibility features—it's treating fundamental accessibility requirements as seriously as we treat other architectural decisions. Landmarks aren't accessibility extras; they're the foundation that makes everything else possible.

Every missing <main> element represents a choice: prioritize the convenience of rushing to ship over the civil rights of disabled users. When we understand it that way, the ten minutes required to add proper landmarks becomes the easiest decision we'll make all day.

About Marcus

Seattle-area accessibility consultant specializing in digital accessibility and web development. Former software engineer turned advocate for inclusive tech.

Specialization: Digital accessibility, WCAG, web development

View all articles by Marcus

Transparency Disclosure

This article was created using AI-assisted analysis with human editorial oversight. We believe in radical transparency about our use of artificial intelligence.