Field manual · 06
Accessibility
Understand Scout UI's native semantics, focus, drag alternatives, artwork policy, and current verification boundary.
Search terms: accessibility, keyboard, forced colors, alt text, focus, drag alternative
Accessibility is part of each component contract. The M17 hardening matrix found no known critical or serious axe violations across the recorded component and documentation states. That automated result is one input, not a conformance claim: real VoiceOver/Safari and NVDA/Firefox review remains a manual release check and is tracked explicitly when it has not been executed.
Start with native semantics
Actions are buttons, navigation destinations are anchors, select badges expose
aria-pressed, and remove badges are one named button without nested controls.
Decorative artwork uses empty alternative text; meaningful images need useful
text or adjacent meaning.
Preserve keyboard alternatives
Peel always has a named toggle. Stack always has previous and next buttons. Navbar uses anchors and a focus-managed mobile Dialog. Drag and pointer effects remain enhancements.
Make focus survive the material
Focus sits outside hard shadows, survives overlap and 200% zoom, and remains a system outline in forced colors. Motion or color alone never communicates state.
Restore native affordances
StickerCursor returns the native cursor for editable fields, media/native
regions, coarse pointers, reduced motion, load failure, blur, leave, and
unmount. Trail layers are aria-hidden and pointer-transparent.
Test the fallback
Review keyboard order, 320px reflow, reduced motion, forced colors, touch, and the server-rendered content—not only an automated axe result.
The repository's M17 accessibility review records the exact automated matrix, keyboard paths, accessibility-tree checks, platform limitations, and separate VoiceOver and NVDA re-entry checklists. Drag remains an enhancement: Peel has a named toggle, Stack has previous/next controls, and neither requires a pointer gesture to expose its complete behavior.