Update popup_menu.dart
diff --git a/packages/flutter/lib/src/material/popup_menu.dart b/packages/flutter/lib/src/material/popup_menu.dart
index 426d475..95af4b4 100644
--- a/packages/flutter/lib/src/material/popup_menu.dart
+++ b/packages/flutter/lib/src/material/popup_menu.dart
@@ -450,10 +450,7 @@
}
return MergeSemantics(
- child: Semantics(
- role: SemanticsRole.menuItem,
- enabled: widget.enabled,
- button: true,
+ child: buildSemantics(
child: InkWell(
onTap: widget.enabled ? handleTap : null,
canRequestFocus: widget.enabled,
@@ -467,6 +464,16 @@
),
);
}
+
+ @protected
+ Widget buildSemantics({required Widget child}) {
+ return Semantics(
+ role: SemanticsRole.menuItem,
+ enabled: widget.enabled,
+ button: true,
+ child: child,
+ );
+ }
}
/// An item with a checkmark in a Material Design popup menu.
@@ -608,6 +615,17 @@
}
@override
+ Widget buildSemantics({required Widget child}) {
+ return Semantics(
+ role: SemanticsRole.menuItemCheckbox,
+ enabled: widget.enabled,
+ checked: widget.checked,
+ button: true,
+ child: child,
+ );
+ }
+
+ @override
Widget buildChild() {
final ThemeData theme = Theme.of(context);
final PopupMenuThemeData popupMenuTheme = PopupMenuTheme.of(context);