diff --git a/examples/flutter_gallery/lib/demo/material/backdrop_demo.dart b/examples/flutter_gallery/lib/demo/material/backdrop_demo.dart
index 9f7b624..67d0a61 100644
--- a/examples/flutter_gallery/lib/demo/material/backdrop_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/backdrop_demo.dart
@@ -395,6 +395,7 @@
             onPressed: _toggleBackdropPanelVisibility,
             icon: AnimatedIcon(
               icon: AnimatedIcons.close_menu,
+              semanticLabel: 'close',
               progress: _controller.view,
             ),
           ),
diff --git a/examples/flutter_gallery/lib/demo/material/bottom_app_bar_demo.dart b/examples/flutter_gallery/lib/demo/material/bottom_app_bar_demo.dart
index 0b1a272..0baef79 100644
--- a/examples/flutter_gallery/lib/demo/material/bottom_app_bar_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/bottom_app_bar_demo.dart
@@ -33,7 +33,7 @@
     label: 'circular floating action button',
     value: FloatingActionButton(
       onPressed: _showSnackbar,
-      child: Icon(Icons.add),
+      child: Icon(Icons.add, semanticLabel: 'Action'),
       backgroundColor: Colors.orange,
     ),
   );
@@ -43,7 +43,7 @@
     label: 'diamond shape floating action button',
     value: _DiamondFab(
       onPressed: _showSnackbar,
-      child: Icon(Icons.add),
+      child: Icon(Icons.add, semanticLabel: 'Action'),
     ),
   );
 
@@ -147,7 +147,7 @@
         actions: <Widget>[
           MaterialDemoDocumentationButton(BottomAppBarDemo.routeName),
           IconButton(
-            icon: const Icon(Icons.sentiment_very_satisfied),
+            icon: const Icon(Icons.sentiment_very_satisfied, semanticLabel: 'Update shape'),
             onPressed: () {
               setState(() {
                 _fabShape = _fabShape == kCircularFab ? kDiamondFab : kCircularFab;
@@ -349,7 +349,7 @@
   Widget build(BuildContext context) {
     final List<Widget> rowContents = <Widget> [
       IconButton(
-        icon: const Icon(Icons.menu),
+        icon: const Icon(Icons.menu, semanticLabel: 'Show bottom sheet'),
         onPressed: () {
           showModalBottomSheet<void>(
             context: context,
@@ -367,7 +367,7 @@
 
     rowContents.addAll(<Widget> [
       IconButton(
-        icon: const Icon(Icons.search),
+        icon: const Icon(Icons.search, semanticLabel: 'show search action',),
         onPressed: () {
           Scaffold.of(context).showSnackBar(
             const SnackBar(content: Text('This is a dummy search action.')),
@@ -379,6 +379,7 @@
           Theme.of(context).platform == TargetPlatform.iOS
               ? Icons.more_horiz
               : Icons.more_vert,
+          semanticLabel: 'Show menu actions',
         ),
         onPressed: () {
           Scaffold.of(context).showSnackBar(
diff --git a/examples/flutter_gallery/lib/demo/material/buttons_demo.dart b/examples/flutter_gallery/lib/demo/material/buttons_demo.dart
index 9de0655..4b5f079 100644
--- a/examples/flutter_gallery/lib/demo/material/buttons_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/buttons_demo.dart
@@ -120,7 +120,7 @@
       demos: demos,
       actions: <Widget>[
         IconButton(
-          icon: const Icon(Icons.sentiment_very_satisfied),
+          icon: const Icon(Icons.sentiment_very_satisfied, semanticLabel: 'Update shape'),
           onPressed: () {
             setState(() {
               _buttonShape = _buttonShape == null ? const StadiumBorder() : null;
@@ -141,13 +141,13 @@
             mainAxisSize: MainAxisSize.min,
             children: <Widget>[
               RaisedButton(
-                child: const Text('RAISED BUTTON'),
+                child: const Text('RAISED BUTTON', semanticsLabel: 'RAISED BUTTON 1'),
                 onPressed: () {
                   // Perform some action
                 },
               ),
               const RaisedButton(
-                child: Text('DISABLED'),
+                child: Text('DISABLED', semanticsLabel: 'DISABLED BUTTON 1'),
                 onPressed: null,
               ),
             ],
@@ -157,14 +157,14 @@
             children: <Widget>[
               RaisedButton.icon(
                 icon: const Icon(Icons.add, size: 18.0),
-                label: const Text('RAISED BUTTON'),
+                label: const Text('RAISED BUTTON', semanticsLabel: 'RAISED BUTTON 2'),
                 onPressed: () {
                   // Perform some action
                 },
               ),
               RaisedButton.icon(
                 icon: const Icon(Icons.add, size: 18.0),
-                label: const Text('DISABLED'),
+                label: const Text('DISABLED', semanticsLabel: 'DISABLED BUTTON 2'),
                 onPressed: null,
               ),
             ],
@@ -184,13 +184,13 @@
             mainAxisSize: MainAxisSize.min,
             children: <Widget>[
               FlatButton(
-                child: const Text('FLAT BUTTON'),
+                child: const Text('FLAT BUTTON', semanticsLabel: 'FLAT BUTTON 1'),
                 onPressed: () {
                   // Perform some action
                 },
               ),
               const FlatButton(
-                child: Text('DISABLED'),
+                child: Text('DISABLED', semanticsLabel: 'DISABLED BUTTON 3',),
                 onPressed: null,
               ),
             ],
@@ -200,14 +200,14 @@
             children: <Widget>[
               FlatButton.icon(
                 icon: const Icon(Icons.add_circle_outline, size: 18.0),
-                label: const Text('FLAT BUTTON'),
+                label: const Text('FLAT BUTTON', semanticsLabel: 'FLAT BUTTON 2'),
                 onPressed: () {
                   // Perform some action
                 },
               ),
               FlatButton.icon(
                 icon: const Icon(Icons.add_circle_outline, size: 18.0),
-                label: const Text('DISABLED'),
+                label: const Text('DISABLED', semanticsLabel: 'DISABLED BUTTON 4'),
                 onPressed: null,
               ),
             ],
@@ -227,13 +227,13 @@
             mainAxisSize: MainAxisSize.min,
             children: <Widget>[
               OutlineButton(
-                child: const Text('OUTLINE BUTTON'),
+                child: const Text('OUTLINE BUTTON', semanticsLabel: 'OUTLINE BUTTON 1'),
                 onPressed: () {
                   // Perform some action
                 },
               ),
               const OutlineButton(
-                child: Text('DISABLED'),
+                child: Text('DISABLED', semanticsLabel: 'DISABLED BUTTON 5'),
                 onPressed: null,
               ),
             ],
@@ -243,14 +243,14 @@
             children: <Widget>[
               OutlineButton.icon(
                 icon: const Icon(Icons.add, size: 18.0),
-                label: const Text('OUTLINE BUTTON'),
+                label: const Text('OUTLINE BUTTON', semanticsLabel: 'OUTLINE BUTTON 2'),
                 onPressed: () {
                   // Perform some action
                 },
               ),
               OutlineButton.icon(
                 icon: const Icon(Icons.add, size: 18.0),
-                label: const Text('DISABLED'),
+                label: const Text('DISABLED', semanticsLabel: 'DISABLED BUTTON 6'),
                 onPressed: null,
               ),
             ],
@@ -360,7 +360,7 @@
           const IconButton(
             icon: Icon(
               Icons.thumb_up,
-              semanticLabel: 'Thumbs up',
+              semanticLabel: 'Thumbs not up',
             ),
             onPressed: null,
           )
@@ -379,6 +379,7 @@
         onPressed: () {
           // Perform some action
         },
+        tooltip: 'floating action button',
       ),
     );
   }
diff --git a/examples/flutter_gallery/lib/demo/material/cards_demo.dart b/examples/flutter_gallery/lib/demo/material/cards_demo.dart
index 2a09e8c..f7ea1b9 100644
--- a/examples/flutter_gallery/lib/demo/material/cards_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/cards_demo.dart
@@ -133,12 +133,12 @@
                   alignment: MainAxisAlignment.start,
                   children: <Widget>[
                     FlatButton(
-                      child: const Text('SHARE'),
+                      child: Text('SHARE', semanticsLabel: 'Share ${destination.title}'),
                       textColor: Colors.amber.shade500,
                       onPressed: () { /* do nothing */ },
                     ),
                     FlatButton(
-                      child: const Text('EXPLORE'),
+                      child: Text('EXPLORE', semanticsLabel: 'Explore ${destination.title}'),
                       textColor: Colors.amber.shade500,
                       onPressed: () { /* do nothing */ },
                     ),
@@ -172,7 +172,10 @@
         actions: <Widget>[
           MaterialDemoDocumentationButton(CardsDemo.routeName),
           IconButton(
-            icon: const Icon(Icons.sentiment_very_satisfied),
+            icon: const Icon(
+              Icons.sentiment_very_satisfied,
+              semanticLabel: 'update shape',
+            ),
             onPressed: () {
               setState(() {
                 _shape = _shape != null ? null : const RoundedRectangleBorder(
diff --git a/examples/flutter_gallery/lib/demo/material/tabs_fab_demo.dart b/examples/flutter_gallery/lib/demo/material/tabs_fab_demo.dart
index 6f09cb8..b24daf7 100644
--- a/examples/flutter_gallery/lib/demo/material/tabs_fab_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/tabs_fab_demo.dart
@@ -141,7 +141,7 @@
         actions: <Widget>[
           MaterialDemoDocumentationButton(TabsFabDemo.routeName),
           IconButton(
-            icon: const Icon(Icons.sentiment_very_satisfied),
+            icon: const Icon(Icons.sentiment_very_satisfied, semanticLabel: 'Toggle extended buttons'),
             onPressed: () {
               setState(() {
                 _extendedButtons = !_extendedButtons;
diff --git a/examples/flutter_gallery/lib/demo/material/text_form_field_demo.dart b/examples/flutter_gallery/lib/demo/material/text_form_field_demo.dart
index bcaa216..2fab33a 100644
--- a/examples/flutter_gallery/lib/demo/material/text_form_field_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/text_form_field_demo.dart
@@ -72,7 +72,10 @@
               _obscureText = !_obscureText;
             });
           },
-          child: Icon(_obscureText ? Icons.visibility : Icons.visibility_off),
+          child: Icon(
+            _obscureText ? Icons.visibility : Icons.visibility_off,
+            semanticLabel: _obscureText ? 'show password' : 'hide password',
+          ),
         ),
       ),
     );
diff --git a/examples/flutter_gallery/lib/gallery/demo.dart b/examples/flutter_gallery/lib/gallery/demo.dart
index 12afd7d..25a13b7 100644
--- a/examples/flutter_gallery/lib/gallery/demo.dart
+++ b/examples/flutter_gallery/lib/gallery/demo.dart
@@ -78,7 +78,7 @@
               Builder(
                 builder: (BuildContext context) {
                   return IconButton(
-                    icon: const Icon(Icons.library_books),
+                    icon: const Icon(Icons.library_books, semanticLabel: 'Show documentation'),
                     onPressed: () => _showApiDocumentation(context),
                   );
                 },
diff --git a/examples/flutter_gallery/test/accessibility_test.dart b/examples/flutter_gallery/test/accessibility_test.dart
index 27a3c51..59358c7 100644
--- a/examples/flutter_gallery/test/accessibility_test.dart
+++ b/examples/flutter_gallery/test/accessibility_test.dart
@@ -243,14 +243,14 @@
       await tester.pumpWidget(MaterialApp(home: BackdropDemo()));
       await expectLater(tester, meetsGuideline(labeledTapTargetGuideline));
       handle.dispose();
-    }, skip: true);
+    });
 
     testWidgets('bottom_app_bar_demo', (WidgetTester tester) async {
       final SemanticsHandle handle = tester.ensureSemantics();
       await tester.pumpWidget(MaterialApp(home: BottomAppBarDemo()));
       await expectLater(tester, meetsGuideline(labeledTapTargetGuideline));
       handle.dispose();
-    }, skip: true);
+    });
 
     testWidgets('bottom_navigation_demo', (WidgetTester tester) async {
       final SemanticsHandle handle = tester.ensureSemantics();
@@ -264,14 +264,14 @@
       await tester.pumpWidget(MaterialApp(home: ButtonsDemo()));
       await expectLater(tester, meetsGuideline(labeledTapTargetGuideline));
       handle.dispose();
-    }, skip: true);
+    });
 
     testWidgets('cards_demo', (WidgetTester tester) async {
       final SemanticsHandle handle = tester.ensureSemantics();
       await tester.pumpWidget(MaterialApp(home: CardsDemo()));
       await expectLater(tester, meetsGuideline(labeledTapTargetGuideline));
       handle.dispose();
-    }, skip: true);
+    });
 
     testWidgets('chip_demo', (WidgetTester tester) async {
       final SemanticsHandle handle = tester.ensureSemantics();
@@ -446,14 +446,14 @@
       await tester.pumpWidget(MaterialApp(home: TabsFabDemo()));
       await expectLater(tester, meetsGuideline(labeledTapTargetGuideline));
       handle.dispose();
-    }, skip: true);
+    });
 
     testWidgets('text_form_field_demo', (WidgetTester tester) async {
       final SemanticsHandle handle = tester.ensureSemantics();
       await tester.pumpWidget(const MaterialApp(home: TextFormFieldDemo()));
       await expectLater(tester, meetsGuideline(labeledTapTargetGuideline));
       handle.dispose();
-    }, skip: true);
+    });
 
     testWidgets('tooltip_demo', (WidgetTester tester) async {
       final SemanticsHandle handle = tester.ensureSemantics();
@@ -503,7 +503,7 @@
         await tester.pumpWidget(MaterialApp(theme: theme, home: BottomAppBarDemo()));
         await expectLater(tester, meetsGuideline(textContrastGuideline));
         handle.dispose();
-      }, skip: true); // https://github.com/flutter/flutter/issues/21651
+      });
 
       testWidgets('bottom_navigation_demo $themeName', (WidgetTester tester) async {
         final AutomatedTestWidgetsFlutterBinding binding = tester.binding;
@@ -521,7 +521,7 @@
         await tester.pumpWidget(MaterialApp(theme: theme, home: ButtonsDemo()));
         await expectLater(tester, meetsGuideline(textContrastGuideline));
         handle.dispose();
-      }, skip: true); // https://github.com/flutter/flutter/issues/21647
+      });
 
       testWidgets('cards_demo $themeName', (WidgetTester tester) async {
         final AutomatedTestWidgetsFlutterBinding binding = tester.binding;
@@ -530,7 +530,7 @@
         await tester.pumpWidget(MaterialApp(theme: theme, home: CardsDemo()));
         await expectLater(tester, meetsGuideline(textContrastGuideline));
         handle.dispose();
-      }, skip: true); // https://github.com/flutter/flutter/issues/21651
+      });
 
       testWidgets('chip_demo $themeName', (WidgetTester tester) async {
         final AutomatedTestWidgetsFlutterBinding binding = tester.binding;
diff --git a/packages/flutter_test/lib/src/accessibility.dart b/packages/flutter_test/lib/src/accessibility.dart
index 3433ae0..97a269d 100644
--- a/packages/flutter_test/lib/src/accessibility.dart
+++ b/packages/flutter_test/lib/src/accessibility.dart
@@ -142,7 +142,7 @@
         result += traverse(child);
         return true;
       });
-      if (node.isMergedIntoParent)
+      if (node.isMergedIntoParent || node.isInvisible || node.hasFlag(ui.SemanticsFlag.isHidden))
         return result;
       final SemanticsData data = node.getSemanticsData();
       // Skip node if it has no actions, or is marked as hidden.
@@ -203,9 +203,11 @@
     });
 
     Future<Evaluation> evaluateNode(SemanticsNode node) async {
+      Evaluation result = const Evaluation.pass();
+      if (node.isInvisible || node.isMergedIntoParent || node.hasFlag(ui.SemanticsFlag.isHidden))
+        return result;
       final SemanticsData data = node.getSemanticsData();
       final List<SemanticsNode> children = <SemanticsNode>[];
-      Evaluation result = const Evaluation.pass();
       node.visitChildren((SemanticsNode child) {
         children.add(child);
         return true;
