Repository: flutter
Issue: [Semantics] tester.getSemantics(...) returning unexpected merged semantics node.
Labels: a: tests,framework,f: material design,a: accessibility,has reproducible steps,P3,found in release: 1.22,found in release: 2.2,found in release: 2.3,team-design,triaged-design

I have a custom class that wraps a `FloatingActionButton`. I have a widget test for this class, and I check the semantics of my custom button using `tester.getSemantics(find.byType(MyButton))`. The `SemanticsNode` returned by this method is not the one I would expect to be returned. 

Here is an example of a test I would expect to pass:

```dart
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';

void main() {
  testWidgets('MyButton has correct semantics', (WidgetTester tester) async {
    await tester.pumpWidget(
      MaterialApp(
        home: Scaffold(
          body: Center(
            child: MyButton(),
          ),
        ),
      ),
    );

    expect(
      tester.getSemantics(find.byType(MyButton)),
      matchesSemantics(
        isButton: true,
        isEnabled: true,
        isImage: false,
        hasEnabledState: true,
        hasTapAction: true,
        label: 'foo',
      ),
    );
  });
}

class MyButton extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.all(8),
      child: FloatingActionButton(
        tooltip: 'foo',
        onPressed: () {},
      ),
    );
  }
}
```

But when I replace the line 
```dart
tester.getSemantics(find.byType(MyButton)),
```
With:
```dart
tester.getSemantics(
  find.descendant(
    of: find.byType(MyButton),
    matching: find.byType(Semantics),
  ).first,
),
```

The test passes. 

### Flutter Doctor Output

```
[✓] Flutter (Channel fix-textFieldRipple, v1.10.2-pre.165, on Mac OS X 10.14.6 18G87, locale en-US)
    • Flutter version 1.10.2-pre.165 at /Users/<my username>/mdc/flutter
    • Framework revision 8912259b0a (3 days ago), 2019-09-27 15:03:48 -0400
    • Engine revision 18bc0b2596
    • Dart version 2.6.0 (build 2.6.0-dev.0.0 403c4af720)


[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at /Users/<my username>/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-29, build-tools 29.0.2
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 10.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.3, Build version 10G8
    • CocoaPods version 1.7.5

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 3.5)
    • Android Studio at /Applications/Android Studio with Blaze.app/Contents
    • Flutter plugin version 38.2.3
    • Dart plugin version 191.8423
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)

[✓] Android Studio (version 3.5)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 39.0.3
    • Dart plugin version 191.8423
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)

[✓] Connected device (4 available)
    ...

• No issues found!
```

cc @jonahwilliams