-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Closed
Labels
a: accessibilityAccessibility, e.g. VoiceOver or TalkBack. (aka a11y)Accessibility, e.g. VoiceOver or TalkBack. (aka a11y)f: date/time pickerDate or time picker widgetsDate or time picker widgetsf: material designflutter/packages/flutter/material repository.flutter/packages/flutter/material repository.found in release: 3.32Found to occur in 3.32Found to occur in 3.32found in release: 3.33Found to occur in 3.33Found to occur in 3.33frameworkflutter/packages/flutter repository. See also f: labels.flutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onThe issue has been confirmed reproducible and is ready to work onr: fixedIssue is closed as already fixed in a newer versionIssue is closed as already fixed in a newer versionteam-accessibilityOwned by Framework Accessibility team (i.e. responsible for accessibility code in flutter/flutter)Owned by Framework Accessibility team (i.e. responsible for accessibility code in flutter/flutter)
Description
Steps to Reproduce
Enable TalkBack on an Android device.
In a Flutter app, use the built-in showDatePicker function to open a calendar picker.
Swipe to the navigation arrows (previous and next month buttons) using TalkBack.
Expected Behavior
In native Android date pickers, TalkBack announces:
Left arrow: “Switch to previous month button”
Right arrow: “Switch to next month button”
These labels provide clear context for screen reader users.
Actual Behavior
In Flutter’s showDatePicker:
The left and right arrow buttons are only announced as "Button" Or "Button, Disabled" with no descriptive label.
These internal buttons are not exposed via Semantics and cannot be annotated or customized externally.
As a result, visually impaired users can't understand their function.
Impact
This is critical to be addressed because of EU laws kicking in on 28th June
This creates a significant accessibility barrier.
Violates WCAG 4.1.2 (Name, Role, Value).
Affects user experience for apps that rely on date input.
Test Environment
Flutter version: 3.22.0
Device: Pixel 8
OS: Android 15
Accessibility Service: TalkBack
Proposed Solution
Internally apply Semantics labels to the arrow buttons:
Left: "Switch to previous month button"
Right: "Switch to next month button"
Workaround
No current workaround is available. These buttons are not externally exposed or modifiable.
Optionally expose a parameter to customize or localize these labels.
Additional Context
The native Android date picker handles this correctly. Flutter’s version should match this level of accessibility to ensure inclusiveness and compliance with accessibility standards.
Metadata
Metadata
Assignees
Labels
a: accessibilityAccessibility, e.g. VoiceOver or TalkBack. (aka a11y)Accessibility, e.g. VoiceOver or TalkBack. (aka a11y)f: date/time pickerDate or time picker widgetsDate or time picker widgetsf: material designflutter/packages/flutter/material repository.flutter/packages/flutter/material repository.found in release: 3.32Found to occur in 3.32Found to occur in 3.32found in release: 3.33Found to occur in 3.33Found to occur in 3.33frameworkflutter/packages/flutter repository. See also f: labels.flutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onThe issue has been confirmed reproducible and is ready to work onr: fixedIssue is closed as already fixed in a newer versionIssue is closed as already fixed in a newer versionteam-accessibilityOwned by Framework Accessibility team (i.e. responsible for accessibility code in flutter/flutter)Owned by Framework Accessibility team (i.e. responsible for accessibility code in flutter/flutter)