flutter-accessibility · git:20260822.e519e06 · 2026-08-22 · sha256 064a33b4df8e306e

flutter-accessibility git:20260822.e519e06A

Immutable. This exact content is served forever at /api/v1/blob/064a33b4df8e306e.

---
name: flutter-accessibility
description: Build or audit Flutter accessibility for semantics, screen readers, focus, keyboard access, text scaling, contrast, target size, and motion preferences. Use when accessibility behavior or compliance evidence is in scope.
---

# 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.

## Sources

- [Flutter accessibility](https://docs.flutter.dev/ui/accessibility)
- [Accessibility testing](https://docs.flutter.dev/ui/accessibility/accessibility-testing)