flutter-accessibility-audit
Implementing Flutter Accessibility
Contents
Managing Semantics
Rely on Flutter's standard widgets (e.g., TabBar, MenuAnchor) for automatic semantic role assignment whenever possible. When building custom components or overriding default behaviors, explicitly define the UI element's purpose using the Semantics widget.
- Wrap custom UI components in a
Semanticswidget. - Assign the appropriate
SemanticsRoleenum value to theroleproperty to define the element's purpose (e.g., button, list, heading). - If building for Flutter Web, note that Flutter translates these roles into corresponding ARIA roles in the HTML DOM.
- Enable web accessibility explicitly. It is disabled by default for performance. Either instruct users to press the invisible
aria-label="Enable accessibility"button, or force it programmatically in yourmain()function.
Auditing Accessibility
Implement the following workflows to verify that your application meets accessibility standards.
More from flutter/skills
flutter-building-layouts
Builds Flutter layouts using the constraint system and layout widgets. Use when creating or refining the UI structure of a Flutter application.
10.6Kflutter-architecting-apps
Architects a Flutter application using the recommended layered approach (UI, Logic, Data). Use when structuring a new project or refactoring for scalability.
10.4Kflutter-animating-apps
Implements animated effects, transitions, and motion in a Flutter app. Use when adding visual feedback, shared element transitions, or physics-based animations.
9.6Kflutter-managing-state
Manages application and ephemeral state in a Flutter app. Use when sharing data between widgets or handling complex UI state transitions.
9.6Kflutter-theming-apps
Customizes the visual appearance of a Flutter app using the theming system. Use when defining global styles, colors, or typography for an application.
9.5Kflutter-implementing-navigation-and-routing
Handles routing, navigation, and deep linking in a Flutter application. Use when moving between screens or setting up URL-based navigation.
9.3K