flutter-accessibility · git:20260904.d6e468f · 2026-09-04 · sha256 acd1e70a2d4400ca
flutter-accessibility git:20260904.d6e468fA
Immutable. This exact content is served forever at /api/v1/blob/acd1e70a2d4400ca.
--- name: flutter-accessibility description: Build or audit Flutter accessibility for semantics, screen readers, focus, keyboard access, text scaling, contrast, target size, and motion preferences. Pair with flutter-responsive-layout when large text causes reflow, clipping, or overflow across constraints. --- # Flutter Accessibility Treat accessibility as behavior to implement and verify, not a label-only cleanup. ## Audit the flow Identify the primary task, semantic reading order, actionable controls, dynamic announcements, focus transitions, text scaling, contrast, motion, and keyboard or switch access on each target platform. ## Rules - Prefer semantic built-in controls before manually adding `Semantics`. - Give custom interactive widgets roles, labels, values, states, and actions without duplicating child semantics. - Keep visual, semantic, and keyboard focus order aligned. - Allow text to scale without clipping or hiding essential actions. - Meet platform-appropriate target sizes and do not rely on color alone. - Preserve functionality with reduced motion and increased contrast preferences. - Announce meaningful asynchronous state changes without creating repetitive noise. - Exclude decorative content from the semantics tree when it adds no information. ## Verification Use widget tests with semantics enabled and Flutter's accessibility guideline matchers where suitable. Also test the changed flow with TalkBack or VoiceOver and keyboard navigation on supported desktop/web targets. ## References - Read [semantics and screen readers](references/semantics-and-screen-readers.md) when annotating custom widgets with Semantics, merging subtrees, or triggering dynamic voice announcements. - Read [target sizes and contrast](references/target-sizes-and-contrast.md) when auditing WCAG AA contrast ratios, minimum touch targets, or large text scaling adaptation. ## Sources - [Flutter accessibility](https://docs.flutter.dev/ui/accessibility) - [Accessibility testing](https://docs.flutter.dev/ui/accessibility/accessibility-testing)