Skip to content

[A11y] VoiceOver cannot announce 'A to B of C' on ListView() #79354

Open

Description

@yama3nomori

TalkBack can announce 'A to B of C' on ListView().
But VoiceOver cannot do it.

ListView(
children: <widget>[
Text('item 1'),
Text('item 2'),
Text('item 3'),
// and more items ...
],
)

Activity

  1. darshankawar commented on Mar 30, 2021

    @darshankawar
    Member

    @yama3nomori
    Tried your code sample on iPhone using latest stable and left swapping announces all the three items properly one by one, ie, item 1, item2 and item 3.

    flutter doctor -v
    
    [✓] Flutter (Channel stable, 2.0.3, on Mac OS X 10.15.4 19E2269 darwin-x64,
        locale en-GB)
        • Flutter version 2.0.3 at /Users/dhs/documents/Fluttersdk/flutter
        • Framework revision 4d7946a68d (11 days ago), 2021-03-18 17:24:33 -0700
        • Engine revision 3459eb2436
        • Dart version 2.12.2
    
    [!] Xcode - develop for iOS and macOS
        • Xcode at /Applications/Xcode.app/Contents/Developer
        • Xcode 12.3, Build version 12C33
        ! CocoaPods 1.9.3 out of date (1.10.0 is recommended).
            CocoaPods is used to retrieve the iOS and macOS platform side's plugin
            code that responds to your plugin usage on the Dart side.
            Without CocoaPods, plugins will not work on iOS or macOS.
            For more info, see https://flutter.dev/platform-plugins
          To upgrade see
          https://guides.cocoapods.org/using/getting-started.html#installation for
          instructions.
    
    [✓] Chrome - develop for the web
        • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
    
    [✓] VS Code (version 1.54.3)
        • VS Code at /Applications/Visual Studio Code.app/Contents
        • Flutter extension version 3.20.0
    
    [✓] Connected device (3 available)
        • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729 • ios
          • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
        • macOS (desktop)            • macos                                •
          darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
        • Chrome (web)               • chrome                               •
          web-javascript • Google Chrome 89.0.4389.90
    
    ! Doctor found issues in 1 category.
    

    If this doesn't represent your issue, provide flutter doctor -v and complete minimal reproducible code sample that shows the issue you are facing.

  2. added
    waiting for responseThe Flutter team cannot make further progress on this issue until the original reporter responds
    on Mar 30, 2021
  3. yama3nomori commented on Apr 2, 2021

    @yama3nomori
    Author

    I tried new Flutter.
    But VoiceOver cannot announce it.

    'flutter doctor -v' is following:

    [√] Flutter (Channel beta, 2.1.0-12.2.pre, on Microsoft Windows [Version 10.0.19042.867], locale ja-JP)
        • Flutter version 2.1.0-12.2.pre at C:\Android\flutter
        • Framework revision 5bedb7b1d5 (2 weeks ago), 2021-03-17 17:06:30 -0700
        • Engine revision 711ab3fda0
        • Dart version 2.13.0 (build 2.13.0-116.0.dev)
    
    [!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
        • Android SDK at C:\Android\sdk
        • Platform android-30, build-tools 30.0.3
        • ANDROID_HOME = C:\Android\sdk
        • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
        • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
        X Android license status unknown.
          Run `flutter doctor --android-licenses` to accept the SDK licenses.
          See https://flutter.dev/docs/get-started/install/windows#android-setup for more details.
    
    [√] Chrome - develop for the web
        • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
    
    [X] Visual Studio - develop for Windows
        X Visual Studio not installed; this is necessary for Windows development.
          Download at https://visualstudio.microsoft.com/downloads/.
          Please install the "Desktop development with C++" workload, including all of its default components
    
    [√] Android Studio (version 4.1.0)
        • Android Studio at C:\Program Files\Android\Android Studio
        • 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 1.8.0_242-release-1644-b01)
    
    [√] VS Code (version 1.55.0)
        • VS Code at C:\Users\nyama\AppData\Local\Programs\Microsoft VS Code
        • Flutter extension version 3.16.0
    
    [√] Connected device (3 available)
        • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.19042.867]
        • Chrome (web)      • chrome  • web-javascript • Google Chrome 89.0.4389.114
        • Edge (web)        • edge    • web-javascript • Microsoft Edge 89.0.774.63
    
    ! Doctor found issues in 2 categories.
    

    Sample code is following:

    import 'package:flutter/material.dart';
    
    void main() {
      runApp(MyApp());
    }
    
    class MyApp extends StatelessWidget {
      // This widget is the root of your application.
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          title: 'Flutter Demo',
          theme: ThemeData(
            // This is the theme of your application.
            //
            // Try running your application with "flutter run". You'll see the
            // application has a blue toolbar. Then, without quitting the app, try
            // changing the primarySwatch below to Colors.green and then invoke
            // "hot reload" (press "r" in the console where you ran "flutter run",
            // or simply save your changes to "hot reload" in a Flutter IDE).
            // Notice that the counter didn't reset back to zero; the application
            // is not restarted.
            primarySwatch: Colors.blue,
          ),
          home: MyHomePage(title: 'Flutter Demo Home Page'),
        );
      }
    }
    
    class MyHomePage extends StatefulWidget {
      MyHomePage({Key key, this.title}) : super(key: key);
    
      // This widget is the home page of your application. It is stateful, meaning
      // that it has a State object (defined below) that contains fields that affect
      // how it looks.
    
      // This class is the configuration for the state. It holds the values (in this
      // case the title) provided by the parent (in this case the App widget) and
      // used by the build method of the State. Fields in a Widget subclass are
      // always marked "final".
    
      final String title;
    
      @override
      _MyHomePageState createState() => _MyHomePageState();
    }
    
    class _MyHomePageState extends State<MyHomePage> {
      int _counter = 0;
    
      void _incrementCounter() {
        setState(() {
          // This call to setState tells the Flutter framework that something has
          // changed in this State, which causes it to rerun the build method below
          // so that the display can reflect the updated values. If we changed
          // _counter without calling setState(), then the build method would not be
          // called again, and so nothing would appear to happen.
          _counter++;
        });
      }
    
      @override
      Widget build(BuildContext context) {
        List <Widget> item = List <Widget>();
        for(int i = 0; i < 100; i++){
          item.add(
            Text('アイテム $i'),
          );
        }
        return Scaffold(
          appBar: AppBar(
            // Here we take the value from the MyHomePage object that was created by
            // the App.build method, and use it to set our appbar title.
            title: Text(widget.title),
          ),
          body: ListView(
            children: item,
          ),
          floatingActionButton: FloatingActionButton(
            onPressed: _incrementCounter,
            tooltip: 'Increment',
            child: Icon(Icons.add),
          ), // This trailing comma makes auto-formatting nicer for build methods.
        );
      }
    }
    
  4. removed
    waiting for responseThe Flutter team cannot make further progress on this issue until the original reporter responds
    on Apr 2, 2021
  5. darshankawar commented on Apr 5, 2021

    @darshankawar
    Member

    @yama3nomori
    Tried your code sample on latest beta using iphone and voiceover reads every item properly. Can you provide a video of the issue ?

  6. added
    waiting for responseThe Flutter team cannot make further progress on this issue until the original reporter responds
    on Apr 5, 2021
  7. removed
    waiting for responseThe Flutter team cannot make further progress on this issue until the original reporter responds
    on Apr 5, 2021
  8. darshankawar commented on Apr 6, 2021

    @darshankawar
    Member

    @yama3nomori
    So if I understand correctly, on Android, it reads item 0, item 1 in local language, but on iOS with voiceover, it seems to only item and then continues in English ?
    Is this correct interpretation of the issue ?

  9. added
    waiting for responseThe Flutter team cannot make further progress on this issue until the original reporter responds
    on Apr 6, 2021
  10. yama3nomori commented on Apr 6, 2021

    @yama3nomori
    Author

    No, this isn't.
    Notice announces after scrolling lists.
    TalkBack announces showing items A to B of C.
    But VoiceOver doesn't do such a TalkBack.
    This is correct interpretation of the issue.

  11. removed
    waiting for responseThe Flutter team cannot make further progress on this issue until the original reporter responds
    on Apr 6, 2021
  12. darshankawar commented on Apr 6, 2021

    @darshankawar
    Member
    flutter doctor -v
    [✓] Flutter (Channel master, 2.1.0-13.0.pre.472, on Mac OS X 10.15.4 19E2269 darwin-x64, locale en-GB)
        • Flutter version 2.1.0-13.0.pre.472 at /Users/dhs/documents/fluttersdk/flutter
        • Framework revision 6b581c432c (4 hours ago), 2021-04-06 01:54:03 -0700
        • Engine revision e74b6497b8
        • Dart version 2.13.0 (build 2.13.0-204.0.dev)
    
    [!] Xcode - develop for iOS and macOS
        • Xcode at /Applications/Xcode.app/Contents/Developer
        • Xcode 12.3, Build version 12C33
        ! CocoaPods 1.9.3 out of date (1.10.0 is recommended).
            CocoaPods is used to retrieve the iOS and macOS platform side's plugin code that responds to your plugin usage on
            the Dart side.
            Without CocoaPods, plugins will not work on iOS or macOS.
            For more info, see https://flutter.dev/platform-plugins
          To upgrade see https://guides.cocoapods.org/using/getting-started.html#installation for instructions.
    
    [✓] Chrome - develop for the web
        • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
    
    [✓] VS Code (version 1.55.0)
        • VS Code at /Applications/Visual Studio Code.app/Contents
        • Flutter extension version 3.20.0
    
    [✓] Connected device (3 available)
        • Darshan's iphone (mobile) • 21150b119064aecc249dfcfe05e259197461ce23 • ios            • iOS 14.4.1
        • macOS (desktop)           • macos                                    • darwin-x64     • Mac OS X 10.15.4 19E2269
          darwin-x64
        • Chrome (web)              • chrome                                   • web-javascript • Google Chrome 89.0.4389.114
    
    ! Doctor found issues in 1 category.
    
    
  13. added
    a: accessibilityAccessibility, e.g. VoiceOver or TalkBack. (aka a11y)
    has reproducible stepsThe issue has been confirmed reproducible and is ready to work on
    platform-iosiOS applications specifically
    f: scrollingViewports, list views, slivers, etc.
    frameworkflutter/packages/flutter repository. See also f: labels.
    and removed
    in triagePresently being triaged by the triage team
    on Apr 6, 2021
  14. changed the title [-]VoiceOver cannot announce 'A to B of C' on ListView()[/-] [+][A11y] VoiceOver cannot announce 'A to B of C' on ListView()[/+] on Dec 8, 2021
  15. added
    P2Important issues not at the top of the work list
    on May 4, 2022
  16. zywek123 commented on Nov 6, 2024

    @zywek123
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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)f: scrollingViewports, list views, slivers, etc.found in release: 2.1Found to occur in 2.1frameworkflutter/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