diff --git a/packages/flutter_test/lib/src/accessibility.dart b/packages/flutter_test/lib/src/accessibility.dart index 32f5a33b6629..02fd01a7abd2 100644 --- a/packages/flutter_test/lib/src/accessibility.dart +++ b/packages/flutter_test/lib/src/accessibility.dart @@ -219,7 +219,8 @@ class LabeledTapTargetGuideline extends AccessibilityGuideline { }); if (node.isMergedIntoParent || node.isInvisible || - node.hasFlag(ui.SemanticsFlag.isHidden)) { + node.hasFlag(ui.SemanticsFlag.isHidden) || + node.hasFlag(ui.SemanticsFlag.isTextField)) { return result; } final SemanticsData data = node.getSemanticsData(); diff --git a/packages/flutter_test/test/accessibility_test.dart b/packages/flutter_test/test/accessibility_test.dart index 78d4ecf827c6..22fc3f307fa7 100644 --- a/packages/flutter_test/test/accessibility_test.dart +++ b/packages/flutter_test/test/accessibility_test.dart @@ -874,6 +874,14 @@ void main() { expect(result.passed, true); handle.dispose(); }); + + testWidgets('Passes if text field does not have label', (WidgetTester tester) async { + final SemanticsHandle handle = tester.ensureSemantics(); + await tester.pumpWidget(_boilerplate(const TextField())); + final Evaluation result = await labeledTapTargetGuideline.evaluate(tester); + expect(result.passed, true); + handle.dispose(); + }); }); testWidgets('regression test for material widget',