Daily Accessibility ReviewSidebar Navigation Uses H6 Headings, Skipping Heading Levels (H1 → H6) #17746
Unanswered
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Accessibility Issue: Illogical Heading Hierarchy in Sidebar Navigation
The sidebar navigation uses
<h6>elements for section group labels while the main page content starts with<h1>. This creates a confusing and illogical heading hierarchy that violates WCAG 2.2 Success Criterion 1.3.1 – Info and Relationships (Level A) and 2.4.6 – Headings and Labels (Level AA).Heading levels should follow a logical outline structure — levels should not be skipped (e.g. going from
<h1>to<h6>) and heading markup should not be used purely for visual styling.Affected File
shell/components/nav/Group.vue— lines 278–289These
<h6>elements are used to label navigation groups like "Cluster", "Workloads", "Apps", "Service Discovery", "Storage", "Policy", "More Resources". The accessibility tree (confirmed via Playwright) exposes all of them asheading [level=6].The accessibility tree for the Cluster Dashboard page shows:
The heading outline jumps from h1 (page title) to h6 (nav labels), which is semantically invalid and confusing for screen reader users navigating by headings.
Steps to Reproduce
Hin NVDA/JAWS or use the Rotor in VoiceOver) — the heading list contains multiple<h6>navigation labels and a single<h1>page title, with no h2–h5 structure connecting them.Suggested Fix
Option A (Preferred): Replace
<h6>with non-heading markup. Navigation section labels are not document headings — they serve as labels for groups of links and should use<span>or a styled<div>withrole="group"andaria-labelinstead:Option B: If heading markup is desired for navigation sections, use
<h2>or<h3>and ensure the overall page heading hierarchy is adjusted so no levels are skipped.WCAG References
Beta Was this translation helpful? Give feedback.
All reactions