Unverified Commit f8e8d89b authored by Qun Cheng's avatar Qun Cheng Committed by GitHub

Set Semantics.button to true for date widget (#128824)

Fixes #127863

This PR is to set `Semantics.button` to true for date widget in `DatePicker`.

https://github.com/flutter/flutter/assets/36861262/b366f25a-6bf3-4e3f-b944-ab71197b73e5
parent c3b2175a
...@@ -1013,6 +1013,8 @@ class _DayPickerState extends State<_DayPicker> { ...@@ -1013,6 +1013,8 @@ class _DayPickerState extends State<_DayPicker> {
// for the day of month. To do that we prepend day of month to the // for the day of month. To do that we prepend day of month to the
// formatted full date. // formatted full date.
label: '${localizations.formatDecimal(day)}, ${localizations.formatFullDate(dayToBuild)}$semanticLabelSuffix', label: '${localizations.formatDecimal(day)}, ${localizations.formatFullDate(dayToBuild)}$semanticLabelSuffix',
// Set button to true to make the date selectable.
button: true,
selected: isSelectedDay, selected: isSelectedDay,
excludeSemantics: true, excludeSemantics: true,
child: dayWidget, child: dayWidget,
......
...@@ -688,152 +688,182 @@ void main() { ...@@ -688,152 +688,182 @@ void main() {
// Day grid. // Day grid.
expect(tester.getSemantics(find.text('1')), matchesSemantics( expect(tester.getSemantics(find.text('1')), matchesSemantics(
label: '1, Friday, January 1, 2016', label: '1, Friday, January 1, 2016',
isButton: true,
hasTapAction: true, hasTapAction: true,
isFocusable: true, isFocusable: true,
)); ));
expect(tester.getSemantics(find.text('2')), matchesSemantics( expect(tester.getSemantics(find.text('2')), matchesSemantics(
label: '2, Saturday, January 2, 2016', label: '2, Saturday, January 2, 2016',
isButton: true,
hasTapAction: true, hasTapAction: true,
isFocusable: true, isFocusable: true,
)); ));
expect(tester.getSemantics(find.text('3')), matchesSemantics( expect(tester.getSemantics(find.text('3')), matchesSemantics(
label: '3, Sunday, January 3, 2016, Today', label: '3, Sunday, January 3, 2016, Today',
isButton: true,
hasTapAction: true, hasTapAction: true,
isFocusable: true, isFocusable: true,
)); ));
expect(tester.getSemantics(find.text('4')), matchesSemantics( expect(tester.getSemantics(find.text('4')), matchesSemantics(
label: '4, Monday, January 4, 2016', label: '4, Monday, January 4, 2016',
isButton: true,
hasTapAction: true, hasTapAction: true,
isFocusable: true, isFocusable: true,
)); ));
expect(tester.getSemantics(find.text('5')), matchesSemantics( expect(tester.getSemantics(find.text('5')), matchesSemantics(
label: '5, Tuesday, January 5, 2016', label: '5, Tuesday, January 5, 2016',
isButton: true,
hasTapAction: true, hasTapAction: true,
isFocusable: true, isFocusable: true,
)); ));
expect(tester.getSemantics(find.text('6')), matchesSemantics( expect(tester.getSemantics(find.text('6')), matchesSemantics(
label: '6, Wednesday, January 6, 2016', label: '6, Wednesday, January 6, 2016',
isButton: true,
hasTapAction: true, hasTapAction: true,
isFocusable: true, isFocusable: true,
)); ));
expect(tester.getSemantics(find.text('7')), matchesSemantics( expect(tester.getSemantics(find.text('7')), matchesSemantics(
label: '7, Thursday, January 7, 2016', label: '7, Thursday, January 7, 2016',
isButton: true,
hasTapAction: true, hasTapAction: true,
isFocusable: true, isFocusable: true,
)); ));
expect(tester.getSemantics(find.text('8')), matchesSemantics( expect(tester.getSemantics(find.text('8')), matchesSemantics(
label: '8, Friday, January 8, 2016', label: '8, Friday, January 8, 2016',
isButton: true,
hasTapAction: true, hasTapAction: true,
isFocusable: true, isFocusable: true,
)); ));
expect(tester.getSemantics(find.text('9')), matchesSemantics( expect(tester.getSemantics(find.text('9')), matchesSemantics(
label: '9, Saturday, January 9, 2016', label: '9, Saturday, January 9, 2016',
isButton: true,
hasTapAction: true, hasTapAction: true,
isFocusable: true, isFocusable: true,
)); ));
expect(tester.getSemantics(find.text('10')), matchesSemantics( expect(tester.getSemantics(find.text('10')), matchesSemantics(
label: '10, Sunday, January 10, 2016', label: '10, Sunday, January 10, 2016',
isButton: true,
hasTapAction: true, hasTapAction: true,
isFocusable: true, isFocusable: true,
)); ));
expect(tester.getSemantics(find.text('11')), matchesSemantics( expect(tester.getSemantics(find.text('11')), matchesSemantics(
label: '11, Monday, January 11, 2016', label: '11, Monday, January 11, 2016',
isButton: true,
hasTapAction: true, hasTapAction: true,
isFocusable: true, isFocusable: true,
)); ));
expect(tester.getSemantics(find.text('12')), matchesSemantics( expect(tester.getSemantics(find.text('12')), matchesSemantics(
label: '12, Tuesday, January 12, 2016', label: '12, Tuesday, January 12, 2016',
isButton: true,
hasTapAction: true, hasTapAction: true,
isFocusable: true, isFocusable: true,
)); ));
expect(tester.getSemantics(find.text('13')), matchesSemantics( expect(tester.getSemantics(find.text('13')), matchesSemantics(
label: '13, Wednesday, January 13, 2016', label: '13, Wednesday, January 13, 2016',
isButton: true,
hasTapAction: true, hasTapAction: true,
isFocusable: true, isFocusable: true,
)); ));
expect(tester.getSemantics(find.text('14')), matchesSemantics( expect(tester.getSemantics(find.text('14')), matchesSemantics(
label: '14, Thursday, January 14, 2016', label: '14, Thursday, January 14, 2016',
isButton: true,
hasTapAction: true, hasTapAction: true,
isFocusable: true, isFocusable: true,
)); ));
expect(tester.getSemantics(find.text('15')), matchesSemantics( expect(tester.getSemantics(find.text('15')), matchesSemantics(
label: '15, Friday, January 15, 2016', label: '15, Friday, January 15, 2016',
isButton: true,
hasTapAction: true, hasTapAction: true,
isSelected: true, isSelected: true,
isFocusable: true, isFocusable: true,
)); ));
expect(tester.getSemantics(find.text('16')), matchesSemantics( expect(tester.getSemantics(find.text('16')), matchesSemantics(
label: '16, Saturday, January 16, 2016', label: '16, Saturday, January 16, 2016',
isButton: true,
hasTapAction: true, hasTapAction: true,
isFocusable: true, isFocusable: true,
)); ));
expect(tester.getSemantics(find.text('17')), matchesSemantics( expect(tester.getSemantics(find.text('17')), matchesSemantics(
label: '17, Sunday, January 17, 2016', label: '17, Sunday, January 17, 2016',
isButton: true,
hasTapAction: true, hasTapAction: true,
isFocusable: true, isFocusable: true,
)); ));
expect(tester.getSemantics(find.text('18')), matchesSemantics( expect(tester.getSemantics(find.text('18')), matchesSemantics(
label: '18, Monday, January 18, 2016', label: '18, Monday, January 18, 2016',
isButton: true,
hasTapAction: true, hasTapAction: true,
isFocusable: true, isFocusable: true,
)); ));
expect(tester.getSemantics(find.text('19')), matchesSemantics( expect(tester.getSemantics(find.text('19')), matchesSemantics(
label: '19, Tuesday, January 19, 2016', label: '19, Tuesday, January 19, 2016',
isButton: true,
hasTapAction: true, hasTapAction: true,
isFocusable: true, isFocusable: true,
)); ));
expect(tester.getSemantics(find.text('20')), matchesSemantics( expect(tester.getSemantics(find.text('20')), matchesSemantics(
label: '20, Wednesday, January 20, 2016', label: '20, Wednesday, January 20, 2016',
isButton: true,
hasTapAction: true, hasTapAction: true,
isFocusable: true, isFocusable: true,
)); ));
expect(tester.getSemantics(find.text('21')), matchesSemantics( expect(tester.getSemantics(find.text('21')), matchesSemantics(
label: '21, Thursday, January 21, 2016', label: '21, Thursday, January 21, 2016',
isButton: true,
hasTapAction: true, hasTapAction: true,
isFocusable: true, isFocusable: true,
)); ));
expect(tester.getSemantics(find.text('22')), matchesSemantics( expect(tester.getSemantics(find.text('22')), matchesSemantics(
label: '22, Friday, January 22, 2016', label: '22, Friday, January 22, 2016',
isButton: true,
hasTapAction: true, hasTapAction: true,
isFocusable: true, isFocusable: true,
)); ));
expect(tester.getSemantics(find.text('23')), matchesSemantics( expect(tester.getSemantics(find.text('23')), matchesSemantics(
label: '23, Saturday, January 23, 2016', label: '23, Saturday, January 23, 2016',
isButton: true,
hasTapAction: true, hasTapAction: true,
isFocusable: true, isFocusable: true,
)); ));
expect(tester.getSemantics(find.text('24')), matchesSemantics( expect(tester.getSemantics(find.text('24')), matchesSemantics(
label: '24, Sunday, January 24, 2016', label: '24, Sunday, January 24, 2016',
isButton: true,
hasTapAction: true, hasTapAction: true,
isFocusable: true, isFocusable: true,
)); ));
expect(tester.getSemantics(find.text('25')), matchesSemantics( expect(tester.getSemantics(find.text('25')), matchesSemantics(
label: '25, Monday, January 25, 2016', label: '25, Monday, January 25, 2016',
isButton: true,
hasTapAction: true, hasTapAction: true,
isFocusable: true, isFocusable: true,
)); ));
expect(tester.getSemantics(find.text('26')), matchesSemantics( expect(tester.getSemantics(find.text('26')), matchesSemantics(
label: '26, Tuesday, January 26, 2016', label: '26, Tuesday, January 26, 2016',
isButton: true,
hasTapAction: true, hasTapAction: true,
isFocusable: true, isFocusable: true,
)); ));
expect(tester.getSemantics(find.text('27')), matchesSemantics( expect(tester.getSemantics(find.text('27')), matchesSemantics(
label: '27, Wednesday, January 27, 2016', label: '27, Wednesday, January 27, 2016',
isButton: true,
hasTapAction: true, hasTapAction: true,
isFocusable: true, isFocusable: true,
)); ));
expect(tester.getSemantics(find.text('28')), matchesSemantics( expect(tester.getSemantics(find.text('28')), matchesSemantics(
label: '28, Thursday, January 28, 2016', label: '28, Thursday, January 28, 2016',
isButton: true,
hasTapAction: true, hasTapAction: true,
isFocusable: true, isFocusable: true,
)); ));
expect(tester.getSemantics(find.text('29')), matchesSemantics( expect(tester.getSemantics(find.text('29')), matchesSemantics(
label: '29, Friday, January 29, 2016', label: '29, Friday, January 29, 2016',
isButton: true,
hasTapAction: true, hasTapAction: true,
isFocusable: true, isFocusable: true,
)); ));
expect(tester.getSemantics(find.text('30')), matchesSemantics( expect(tester.getSemantics(find.text('30')), matchesSemantics(
label: '30, Saturday, January 30, 2016', label: '30, Saturday, January 30, 2016',
isButton: true,
hasTapAction: true, hasTapAction: true,
isFocusable: true, isFocusable: true,
)); ));
......
...@@ -1268,6 +1268,7 @@ void main() { ...@@ -1268,6 +1268,7 @@ void main() {
expect(tester.getSemantics(find.text('3')), matchesSemantics( expect(tester.getSemantics(find.text('3')), matchesSemantics(
label: '3, Sunday, January 3, 2016, Today', label: '3, Sunday, January 3, 2016, Today',
isButton: true,
hasTapAction: true, hasTapAction: true,
isFocusable: true, isFocusable: true,
)); ));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment