Repository: flutter
Issue: [A11y] CustomScrollView/SliverPersistentHeader - Unexpected VoiceOver/Talkback navigation order
Labels: platform-android,platform-ios,framework,a: accessibility,has reproducible steps,P2,found in release: 3.10,found in release: 3.11,team-framework,triaged-framework

## Steps to Reproduce

Given the following Flutter app:

```dart
import 'package:flutter/material.dart';

void main() {
  runApp(SampleApp());
}

class SampleApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Accessibility Issue',
      home: SampleScreen(),
    );
  }
}

class SampleScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: CustomScrollView(physics: ClampingScrollPhysics(), slivers: [
        SliverAppBar(
          pinned: true,
          expandedHeight: 100,
          flexibleSpace: FlexibleSpaceBar(
            collapseMode: CollapseMode.pin,
            title: Text("Accessibility Issue"),
          ),
        ),
        SliverPersistentHeader(delegate: MyDelegate()),
        SliverToBoxAdapter(
            child: Container(
              padding: EdgeInsets.symmetric(vertical: 25),
          child: Text("Something after the header."),
        )),
        SliverPersistentHeader(delegate: MyDelegate()),
        SliverToBoxAdapter(
            child: Container(
              padding: EdgeInsets.symmetric(vertical: 25),
          child: Text("Something after the header."),
        )),
      ]),
    );
  }
}

class MyDelegate extends SliverPersistentHeaderDelegate {
  @override
  Widget build(
      BuildContext context, double shrinkOffset, bool overlapsContent) {
    return Container(
      color: Colors.indigo,
      child: SizedBox(
          width: double.infinity,
          height: 50,
          child: Center(
              child: Text(
            "Persistent Header",
            style: TextStyle(color: Colors.white),
          ))),
    );
  }

  @override
  bool shouldRebuild(SliverPersistentHeaderDelegate oldDelegate) => true;

  @override
  double get maxExtent => 50;

  @override
  double get minExtent => 50;
}
```
Running on iPhone 6s, iOS 14.4, with VoiceOver enabled.

Use 2-Finger Swipe down gesture to begin reading the screen from the top.

**Expected results:**
VoiceOver should read the elements from top to bottom:
1. Accessibility Issue
2. Persistent Header
3. Something after the header
4. Persistent Header
5. Something after the header

**Actual results:**
VoiceOver reads the elements in an unexpected order:
1. Accessibility Issue
2. Persistent Header
3. Persistent Header
4. Something after the header
5. Something after the header

Note, if SliverPersistentHeader is replaced with a SliverToBoxAdapter with the same content, the reading order is correct. Currently, to workaround this issue, I am querying whether accessibleNavigation is enabled, and replacing the persistent header with box adapter.

<details>
  <summary>Logs</summary>

```
[✓] Flutter (Channel stable, 2.0.0, on Mac OS X 10.15.7 19H524 darwin-x64, locale en-US)
    • Flutter version 2.0.0 at /Users/mobidevelop/Development/Kits/flutter
    • Framework revision 60bd88df91 (3 days ago), 2021-03-03 09:13:17 -0800
    • Engine revision 40441def69
    • Dart version 2.12.0

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /Users/mobidevelop/Development/Kits/android-sdk-macosx
    • Platform android-30, build-tools 30.0.2
    • ANDROID_HOME = /Users/mobidevelop/Development/Kits/android-sdk-macosx
    • Java binary at: /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/bin/java
    • Java version Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[!] Android Studio (not installed)
    • Android Studio not found; download from https://developer.android.com/studio/index.html
      (or visit https://flutter.dev/docs/get-started/install/macos#android-setup for detailed instructions).

[✓] Connected device (3 available)
    • AOSP on IA Emulator (mobile) • emulator-5554                            • android-x86    • Android 9 (API 28) (emulator)
    • Justin’s iPhone (mobile)     • d7fd6226455492bf6d9761d123f5fb4c4e9dea99 • ios            • iOS 14.4
    • Chrome (web)                 • chrome                                   • web-javascript • Google Chrome 88.0.4324.192

! Doctor found issues in 1 category.
```

</details>