Missing Landmarks: The Invisible Walls on Acme's Learning Hub
Jamie · AI Research Engine
Analytical lens: Strategic Alignment
Small business, Title III, retail/hospitality
AI-assisted · Source-linked · Editorially reviewed · Methodology
Trust note
This article was drafted with AI assistance, reviewed against accessibility.chat editorial standards, and should be treated as research and education rather than legal advice. We prioritize primary sources and correct material errors.

For a sighted user, the Acme Learning Hub loads cleanly. Videos, dashboards, release notes, resource tabs — a well-organized page. For a screen reader user, the same page is a flat, undifferentiated wall of content. No way to skip to the main material. No navigation region to jump between sections. No banner landmark to orient themselves. The structure that sighted users perceive visually simply doesn't exist in the accessibility tree.
The automated analysis of this test page (opens in new window) identified three missing ARIA landmark violations. None of them require a redesign. All of them are fixable in an afternoon. And yet, here we are.
THE FINDING
The static accessibility analysis flagged three violations on the Learning Hub resources page:
- No
<main>landmark — screen readers cannot skip to main content - No
<nav>landmark — navigation regions are unidentified - No
<header>/ banner landmark — page banner is structurally invisible
These violations map directly to WCAG 2.1 Success Criterion 1.3.1: Info and Relationships (opens in new window), which requires that structure and relationships conveyed through visual presentation be available to assistive technologies. They also implicate WCAG 2.4.1: Bypass Blocks (opens in new window), which requires mechanisms to skip repeated navigation content — a mechanism that depends entirely on landmarks existing in the first place.
The current page structure, stripped to its bones, likely looks something like this:
<!-- Current (broken) pattern -->
<div class="header">...</div>
<div class="nav">...</div>
<div class="content">
<h1>Learning Hub</h1>
<!-- videos, dashboards, release notes... -->
</div>
CSS classes named header or nav mean nothing to a screen reader. Semantic HTML elements and ARIA landmarks do.
WHY THIS MATTERS
Once again, we're looking at a page that passes a visual design review and fails the moment someone opens NVDA or VoiceOver.
Here's what actually happens to a screen reader user on this page:
Skip navigation is impossible. Without a <main> landmark, there's no target for a "skip to main content" link. Every page visit forces the user to tab through every repeated element — logo, navigation tabs, any header controls — before reaching the Learning Hub content. On a page with four navigation tabs (Guides, Templates, Webinars, API docs) plus whatever precedes them, that's friction on every single visit.
Landmark navigation doesn't work. Screen reader users routinely press D (in NVDA) or use the rotor (in VoiceOver) to jump between landmarks — banner, navigation, main, footer. On this page, those shortcuts return nothing. The user must read linearly from top to bottom, or rely solely on heading navigation.
Disorientation compounds quickly. The heading structure on this page actually passes — H1 → H2 → H2 → H2 → H2 is clean. But headings alone don't tell a user where they are in the page's structural regions. Is this heading inside the navigation? The main content? A sidebar? Without landmarks, that context is gone.
For users of switch access or other sequential navigation tools, the burden is even higher. Every extra step through unreachable content is a real cost in time and cognitive load.
BEST PRACTICES
The fix is semantic HTML. In most cases, that means replacing generic <div> containers with their proper HTML5 equivalents. Where that's not possible (legacy frameworks, component constraints), ARIA role attributes bridge the gap.
<!-- Fixed pattern: semantic HTML -->
<header>
<!-- logo, global controls -->
</header>
<nav aria-label="Primary navigation">
<!-- site-level navigation links -->
</nav>
<main>
<h1>Learning Hub</h1>
<!-- Featured videos, live dashboards, tools, release notes -->
</main>
If your framework prevents native element changes, ARIA roles achieve the same result:
<!-- Fixed pattern: ARIA roles on existing divs -->
<div role="banner">
<!-- header content -->
</div>
<div role="navigation" aria-label="Primary navigation">
<!-- nav content -->
</div>
<div role="main">
<h1>Learning Hub</h1>
<!-- main content -->
</div>
Two notes on the <nav> fix: first, if the page has multiple navigation regions (primary nav, in-page tabs, footer nav), each should carry a distinct aria-label so users can distinguish them. The resource library tabs — Guides, Templates, Webinars, API docs — likely warrant their own labeled <nav> or a role="tablist" pattern, depending on their behavior. Second, the passing checks confirm those tab buttons already have accessible names. That's the right foundation; wrapping them in a proper landmark completes the picture.
The ARIA Authoring Practices Guide on Landmark Regions (opens in new window) provides the authoritative reference for when and how to use each landmark type.
APPLYING THIS
In code review: Add a landmark check to your PR template. A one-line question — "Does this page have <main>, <header>, and <nav>?" — catches this class of issue before it ships. Automated tools like axe-core will flag missing landmarks, but only if they're in your CI pipeline.
In automated testing: This is exactly the category of issue that automated tools can catch reliably. Missing required landmarks are structural, binary, and machine-detectable. If your pipeline isn't flagging these, your pipeline has a gap. Our research on automated testing methodology shows that automated tools catch roughly 37% of all accessibility issues — but landmark violations are squarely in that detectable 37%.
Quick win vs. deeper fix: Adding landmark elements is a quick win — often a single-template change that fixes every page at once. The deeper fix is building landmark requirements into your component library and design system so new pages can't ship without them. That's a medium-term investment, but it's the only one that scales.
Don't stop at landmarks. The automated analysis also flagged a chart placeholder — [ Chart: Monthly active users — placeholder ] — that almost certainly needs a text alternative under WCAG 1.1.1: Non-text Content (opens in new window). The live dashboards updating every 60 seconds raise WCAG 4.1.3: Status Messages (opens in new window) questions. Automated analysis surfaces the structural layer; manual review is required to surface the rest. The gap between those two layers is documented in detail in The Methodology Paradox.
CORS PERSPECTIVE
Through a CORS analytical lens, this finding sits at the intersection of Operational and Strategic factors. The fix is low-skill, high-impact — a textbook item for the "chop list" of quick wins that any front-end developer can execute without specialized accessibility expertise. Strategically, a learning hub is a high-visibility, high-use surface: it's where users go to build competence with a product. Leaving screen reader users unable to navigate that space isn't a minor edge case — it's a signal about how deeply accessibility thinking has (or hasn't) penetrated the product development process. Organizations that want to understand why structural issues like this persist despite being easily preventable should read The Compliance Framework Paradox, which examines how process gaps — not technical complexity — drive most recurring violations.
About the Jamie lens
Houston-based small business advocate. Former business owner who understands the real-world challenges of Title III compliance.
Jamie is an AI analyst lens, not a human staff member. It helps frame this article through a consistent accessibility perspective.
Specialization: Small business, Title III, retail/hospitality
View all articles using this lens →Primary source reviewed: https://wcagrepo.netlify.app/12-embedded-content (opens in new window)
Transparency Disclosure
This article was drafted with AI assistance and reviewed against our editorial methodology. We disclose that process so readers can judge the work clearly.