@@ -244,7 +244,11 @@ class _CalendarDatePickerState extends State<CalendarDatePicker> {
244244 // Auxiliary method for handling the difference between platforms
245245 void _announce (String message) {
246246 if (MediaQuery .maybeSupportsAnnounceOf (context) ?? false ) {
247- SemanticsService .sendAnnouncement (View .of (context), message, Directionality .of (context));
247+ SemanticsService .sendAnnouncement (
248+ View .of (context),
249+ message,
250+ Directionality .of (context),
251+ ).catchError (_reportAnnouncementError);
248252 } else {
249253 // If SemanticsService.sendAnnouncement is not supported,
250254 // we use live region to achieve the announcement effect instead.
@@ -328,7 +332,7 @@ class _CalendarDatePickerState extends State<CalendarDatePicker> {
328332 View .of (context),
329333 '${_localizations .selectedDateLabel } ${widget .calendarDelegate .formatFullDate (_selectedDate !, _localizations )}$semanticLabelSuffix ' ,
330334 _textDirection,
331- );
335+ ). catchError (_reportAnnouncementError) ;
332336 case TargetPlatform .android:
333337 case TargetPlatform .iOS:
334338 case TargetPlatform .fuchsia:
@@ -675,7 +679,11 @@ class _MonthPickerState extends State<_MonthPicker> {
675679 // Auxiliary method for handling the difference between platforms
676680 void _announce (String message) {
677681 if (MediaQuery .maybeSupportsAnnounceOf (context) ?? false ) {
678- SemanticsService .sendAnnouncement (View .of (context), message, Directionality .of (context));
682+ SemanticsService .sendAnnouncement (
683+ View .of (context),
684+ message,
685+ Directionality .of (context),
686+ ).catchError (_reportAnnouncementError);
679687 } else {
680688 // If SemanticsService.sendAnnouncement is not supported,
681689 // we use live region to achieve the announcement effect instead.
@@ -1635,3 +1643,14 @@ class _YearPickerGridDelegate extends SliverGridDelegate {
16351643 @override
16361644 bool shouldRelayout (_YearPickerGridDelegate oldDelegate) => false ;
16371645}
1646+
1647+ void _reportAnnouncementError (Object exception, StackTrace stack) {
1648+ FlutterError .reportError (
1649+ FlutterErrorDetails (
1650+ exception: exception,
1651+ stack: stack,
1652+ library: 'material library' ,
1653+ context: ErrorDescription ('while sending semantics announcement' ),
1654+ ),
1655+ );
1656+ }
0 commit comments