…AG 1.3.2)
Reimplements the 1.3.2 Meaningful Sequence fix on the linksSnippet
architecture introduced by #3445 (which deleted bottom-nav-links.svelte).
The drawer used flex-col-reverse to place the primary nav group at the
bottom near the thumb, so sighted users read top-to-bottom while AT and
keyboard users encountered the reverse DOM order. Move the reversal from
CSS into the data: emit the snippet in visual top-to-bottom order
(reversed copies of each group) and switch flex-col-reverse/justify-start
to flex-col/justify-end. Pixels are unchanged; DOM, tab, and screen-reader
order now match the visual order.
Copies ([...group].reverse()) are used so the arrays passed to the
desktop SideNavigation are not mutated.
A11y-Audit-Ref: 1.3.2-bottom-nav-links-order
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Summary
The mobile bottom-nav drawer used
flex-col-reverseto put the most-important section closest to the user's thumb at the bottom of the screen. Visually correct, but the implementation chose to reverse via CSS rather than data:[C, B, A](bottom-up importance)[A, B, C](DOM order)This is the canonical WCAG 1.3.2 Meaningful Sequence failure — visual reading order diverges from programmatic reading order.
Fix
Move the reversal from CSS to a
$derivedin script, then use plainflex-col:Visual output is identical. DOM order, keyboard tab order, and screen-reader reading order now all agree.
Audit context
audit-output/issues/1.3.2-bottom-nav-links-order.md.aria-describedbylinkage) was deferred to the 1.4.13 tooltip remediation. That dependency is already satisfied by PR fix(a11y): make Tooltip keyboard-accessible, dismissible, and hoverable #3429, which adds thearia-describedbywiring.Test plan
<NavSection>elements should appear invisualSectionsorder, not the reversed-by-CSS original.🤖 Generated with Claude Code
A11y-Audit-Ref: 1.3.2-bottom-nav-links-order