Skip to content

[iOS] [A11y] ListView's addSemanticIndexes/IndexedSemantics don't announce correctly with VoiceOver three-finger tap #93232

@WillowWisp

Description

@WillowWisp

Steps to Reproduce

  1. Have a ListView.builder with addSemanticIndexes: true (See code sample)
  2. Turn on VoiceOver
  3. Focus a11y on an item of the ListView & tap with three fingers

Expected results:

As documented here, VoiceOver should announce additional info like the index of the focused item.

Apple's document:

Three-finger tap: Speak additional information, such as the position within a list or whether text is selected

https://support.apple.com/guide/iphone/learn-voiceover-gestures-iph3e2e2281/ios

listview_semantics_work.mov

Actual results:

It only announces the absolute position of the item like "center of screen, full width of screen".

listview_semantics_not_work.mov
Code sample
ListView.builder(
  itemCount: 50,
  addSemanticIndexes: true,
  itemBuilder: (context, index) {
    return Column(
      children: [
        Container(
          color: Colors.blue,
          child: Text('Hello world'),
        ),
        Container(
          height: 50,
          child: Text('Test index: $index'),
        ),
      ],
    );
  },
)
flutter doctor -v
[✓] Flutter (Channel stable, 2.5.3, on macOS 11.6 20G165 darwin-x64, locale en)
    • Flutter version 2.5.3 at
      /Users/nguyenthang/Desktop/ThangDev/FlutterSDK/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 18116933e7 (3 weeks ago), 2021-10-15 10:46:35 -0700
    • Engine revision d3ea636dc5
    • Dart version 2.14.4

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/nguyenthang/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • ANDROID_HOME = /Users/nguyenthang/Library/Android/sdk
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 13.1, Build version 13A1030d
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2020.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)

[✓] VS Code (version 1.59.0)
    • VS Code at /Users/nguyenthang/Downloads/Visual Studio Code.app/Contents
    • Flutter extension version 3.27.0

[✓] Connected device (2 available)
    • Testflight’s iPad (mobile) • 30f479e7ee4c7fd9518711dd7017eb75383a46db •
      ios            • iOS 14.4.1 18D61
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 95.0.4638.69

• No issues found!

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work lista: accessibilityAccessibility, e.g. VoiceOver or TalkBack. (aka a11y)a: fidelityMatching the OEM platforms betterf: scrollingViewports, list views, slivers, etc.found in release: 2.5Found to occur in 2.5found in release: 2.6Found to occur in 2.6frameworkflutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onplatform-iosiOS applications specificallyteam-iosOwned by iOS platform teamtriaged-iosTriaged by iOS platform team

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions