Closed
Description
Steps to reproduce
Internal bug b/377876657
and
internal bug b/412307873
- Write some UI that invokes
showDatePicker
- Use an accessibility checker on the resulting UI, such as
await expectLater( tester, meetsGuideline(androidTapTargetGuideline), );
Expected results
All user-interactable elements should have a minimum touch target size of at least 48dp x 48dp, as described at https://support.google.com/accessibility/android/answer/7101858.
Actual results
The size of the individual day buttons is less than 48x48
Code sample
Code sample
App code:
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData.light(useMaterial3: true),
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key? key, required this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text(widget.title)),
body: Center(child: Text('Body')),
floatingActionButton: FloatingActionButton(
onPressed: () {
showDatePicker(
context: context,
initialDate: DateTime.now(),
firstDate: DateTime(2024),
lastDate: DateTime(2026),
);
},
tooltip: 'Increment',
),
);
}
}
Test code:
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
// Import for file above
import 'package:hello_flutter.app/main.dart';
void main() {
testWidgets('test', (WidgetTester tester) async {
await tester.pumpWidget(MyApp());
final button = find.byType(FloatingActionButton);
await tester.tap(button);
await tester.pumpAndSettle();
expect(find.byType(DatePickerDialog), findsOneWidget);
await expectLater(
tester,
meetsGuideline(androidTapTargetGuideline),
);
});
}
Screenshots or Video
Screenshots / Video demonstration: N/A
Logs
Logs: N/A
Flutter Doctor output
Doctor output
N/A, Google internal client
Metadata
Metadata
Assignees
Labels
High-priority issues at the top of the work listAccessibility, e.g. VoiceOver or TalkBack. (aka a11y)Date or time picker widgetsflutter/packages/flutter/material repository.Found to occur in 3.27flutter/packages/flutter repository. See also f: labels.The issue has been confirmed reproducible and is ready to work onOwned by Framework Accessibility team (i.e. responsible for accessibility code in flutter/flutter)Triaged by Framework Accessibility team
Type
Projects
Status
Done (PR merged)
Status
Done