diff --git a/dev/a11y_assessments/lib/use_cases/text_field.dart b/dev/a11y_assessments/lib/use_cases/text_field.dart index f19fd7c69b..378be4444c 100644 --- a/dev/a11y_assessments/lib/use_cases/text_field.dart +++ b/dev/a11y_assessments/lib/use_cases/text_field.dart @@ -30,25 +30,31 @@ class _MainWidget extends StatelessWidget { ), body: ListView( children: [ - const TextField( - key: Key('enabled text field'), - maxLines: null, - decoration: InputDecoration( - labelText: 'Email', - suffixText: '@gmail.com', - hintText: 'Enter your email', + Semantics( + label: 'Input field with suffix @gmail.com', + child: const TextField( + key: Key('enabled text field'), + maxLines: null, + decoration: InputDecoration( + labelText: 'Email', + suffixText: '@gmail.com', + hintText: 'Enter your email', + ), ), ), - TextField( - key: const Key('disabled text field'), - maxLines: null, - decoration: const InputDecoration( - labelText: 'Email', - suffixText: '@gmail.com', - hintText: 'Enter your email', + Semantics( + label: 'Input field with suffix @gmail.com', + child: TextField( + key: const Key('disabled text field'), + maxLines: null, + decoration: const InputDecoration( + labelText: 'Email', + suffixText: '@gmail.com', + hintText: 'Enter your email', + ), + enabled: false, + controller: TextEditingController(text: 'xyz'), ), - enabled: false, - controller: TextEditingController(text: 'xyz'), ), ], ), diff --git a/dev/a11y_assessments/test/text_field_test.dart b/dev/a11y_assessments/test/text_field_test.dart index 2d7b927fc3..58439bb3aa 100644 --- a/dev/a11y_assessments/test/text_field_test.dart +++ b/dev/a11y_assessments/test/text_field_test.dart @@ -54,4 +54,12 @@ void main() { expect(size.height, 280); } }); + + testWidgets('text field wrapper exists', (WidgetTester tester) async { + await pumpsUseCase(tester, TextFieldUseCase()); + const String textFieldLabel = 'Input field with suffix @gmail.com'; + + final Finder semanticsWidgets = find.bySemanticsLabel(RegExp(textFieldLabel)); + expect(semanticsWidgets, findsExactly(2)); + }); }