Level AAA criterion targeting personalization: the purpose of UI components, icons, and regions must be programmatically determinable so user agents can substitute symbols, simplify, or hide non-essential elements
1.3.6 Identify Purpose
In Plain Language
1.3.6 Identify Purpose is Level AAA and extends its sibling 1.3.5 Identify Input Purpose beyond form fields to every UI component, icon, and page region. The purpose of buttons, links, navigation regions, and icons must be programmatically determinable so a personalization layer can swap, simplify, or hide them for users with cognitive and learning disabilities[1].
Where 1.3.5 scopes the mechanism to input fields via HTML autocomplete, 1.3.6 covers the rest of the interface: landmarks via native sectioning elements (<header>, <nav>, <main>, <aside>, <footer>) or ARIA roles (banner, navigation, main, complementary, contentinfo), and accessible names on every icon-only control[2]. AAA is not required for WCAG 2.2 AA conformance, but the criterion is a forward-looking signal: it exists to let W3C COGA's Personalization Semantics working drafts attach metadata that assistive technologies can act on.
Why It Matters
- Personalization tools for users with cognitive and learning disabilities rely on programmatic purpose to substitute generic icons with a user's own symbol set, simplify chrome, or suppress regions the user does not need. Without landmarks and accessible names, the substitution has nothing to bind to[1].
- Screen-reader users jump between landmarks (NVDA D, VoiceOver rotor) rather than linearising the DOM. A page built from generic
<div>wrappers collapses that navigation model -- the landmark list is empty, so the user steps through every element. - Icon-only buttons (
✉,🔍,🖨) carry no programmatic purpose unless the author attaches an accessible name viaaria-label, visually hidden text, or a visible label. Without a name the button announces as "button" and the purpose is unrecoverable. - Duplicate landmarks (two
<nav>regions, multiple<aside>blocks) must be disambiguated witharia-labeloraria-labelledby; otherwise the landmark list surfaces "navigation, navigation" and the user cannot tell which is which[3].
Examples
✔ Each region is identifiable by assistive technology via landmarks
<header role="banner">
<h1>Site Title</h1>
</header>
<nav role="navigation" aria-label="Main">
<a href="/">Home</a>
<a href="/about">About</a>
</nav>
<main role="main">
<!-- Page content -->
</main>
<footer role="contentinfo">
<p>Copyright info</p>
</footer>
✘ Generic divs -- assistive technology cannot identify page regions
<!-- FAILS: no landmarks or semantic elements -->
<div class="header">
<h1>Site Title</h1>
</div>
<div class="nav">
<a href="/">Home</a>
<a href="/about">About</a>
</div>
<div class="content">
<!-- Page content -->
</div>
<div class="footer">
<p>Copyright info</p>
</div>
✔ Icons have accessible names -- assistive tech can identify their purpose
<button type="button">
<span aria-hidden="true">✉</span>
<span>Send Email</span>
</button>
<button type="button" aria-label="Print this page">
<span aria-hidden="true">🖨</span>
</button>
<button type="button" aria-label="Search">
<span aria-hidden="true">🔍</span>
</button>
✘ Icon-only buttons with no accessible name -- purpose cannot be determined
<!-- FAILS: no accessible names on icon buttons -->
<button type="button">✉</button>
<button type="button">🖨</button>
<button type="button">🔍</button>
<!-- Screen readers announce these as
"button" with no useful label -->
How to Fix It
- Use native sectioning elements first.
<header>,<nav>,<main>,<aside>, and<footer>map to thebanner,navigation,main,complementary, andcontentinfolandmark roles without extra ARIA. ARIA in HTML documents the default role mappings[2]. - Add explicit ARIA roles only when the sectioning element is not available. On a generic container,
role="navigation"orrole="complementary"produces the same landmark. Do not double up --<nav role="navigation">is redundant and, on older AT, can create duplicate announcements. - Disambiguate duplicate landmarks with accessible names. Give each repeated landmark an
aria-labeloraria-labelledby(e.g.,aria-label="Primary"on the main nav andaria-label="Footer"on the footer nav) so the landmark list reads distinctly. - Give every icon-only control an accessible name. Use
aria-label, visually hidden text inside the button, or a visible text label alongside the glyph. Mark the decorative glyph itself witharia-hidden="true"so it is not double-announced. - Verify with the landmark rotor. NVDA's landmark quick-nav (D) and VoiceOver's rotor expose the same tree a personalization layer would bind to. If the landmarks are missing, unlabelled, or duplicated, 1.3.6 is failing even where the page is visually tidy.
References
- [1] W3C (2023). Understanding Success Criterion 1.3.6: Identify Purpose. W3C, Accessed 2026-04-07. https://www.w3.org/WAI/WCAG22/Understanding/identify-purpose.html ↩ ↩
- [2] W3C (2026). ARIA in HTML. W3C, Accessed 2026-04-07. https://www.w3.org/TR/html-aria/ ↩ ↩
- [3] W3C (2024). WAI-ARIA Authoring Practices Guide. W3C, Accessed 2026-04-07. https://www.w3.org/WAI/ARIA/apg/ ↩