Skip to content

Accessibility Violations (EU law): showDatePicker lacks descriptive TalkBack labels for "Previous" and "Next month" buttons #171071

@BabarShamsi-mset1

Description

@BabarShamsi-mset1

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

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)f: date/time pickerDate or time picker widgetsf: material designflutter/packages/flutter/material repository.found in release: 3.32Found to occur in 3.32found in release: 3.33Found to occur in 3.33frameworkflutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onr: fixedIssue is closed as already fixed in a newer versionteam-accessibilityOwned by Framework Accessibility team (i.e. responsible for accessibility code in flutter/flutter)

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions