Skip to content

Accessibility scroll in iOS does not match native #64279

Description

@chunhtai
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';

void main() => runApp(MaterialApp(home: MyTabbedPage()));

class MyTabbedPage extends StatefulWidget {
  @override
  _MyTabbedPageState createState() => _MyTabbedPageState();
}

class _MyTabbedPageState extends State<MyTabbedPage> with SingleTickerProviderStateMixin {
  final List<Widget> myTabs = <Widget>[
    Container(height: 100, child: Text('item 0')),
    Container(height: 100, child: Text('item 1')),
    Container(height: 100, child: Text('item 2')),
    Container(height: 100, child: Text('item 3')),
    Container(height: 100, child: Text('item 4')),
    Container(height: 100, child: Text('item 5')),
    Container(height: 100, child: Text('item 6')),
    Container(height: 100, child: Text('item 7')),
    Container(height: 100, child: Text('item 8')),
    Container(height: 100, child: Text('item 9')),
    Container(height: 100, child: Text('item 10')),
    Container(height: 100, child: Text('item 11')),
    Container(height: 100, child: Text('item 12')),
    Container(height: 100, child: Text('item 13')),
    Container(height: 100, child: Text('item 14')),
    Container(height: 100, child: Text('item 15')),
  ];


  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('title'),
      ),
      body: ListView(
        children: myTabs,
      )
    );
  }
}

Steps to Reproduce

  1. In iOS, turn on voice over.
  2. Scroll the list using three finger accessibility scroll.

Expect: The list scroll with an animation like a native UIScrollView.
Actual: The list just jump to the destination without any animation.

Activity

  1. added
    platform-iosiOS applications specifically
    frameworkflutter/packages/flutter repository. See also f: labels.
    a: accessibilityAccessibility, e.g. VoiceOver or TalkBack. (aka a11y)
    f: gesturesflutter/packages/flutter/gestures repository.
    on Aug 20, 2020
  2. darshankawar commented on Aug 27, 2020

    @darshankawar
    Member

    Issue replicable on latest stable (1.20.2). Tested on iphone 6s and observed that with voiceover ON and scrolling through the list, it jumps to last visible list item directly.

    flutter doctor -v
    Flutter 1.20.2 • channel stable • https://github.com/flutter/flutter.git
    Framework • revision bbfbf1770c (15 hours ago) • 2020-08-13 08:33:09 -0700
    Engine • revision 9d5b21729f
    Tools • Dart 2.9.1
    
    Running flutter doctor...
    Doctor summary (to see all details, run flutter doctor -v):
    [✓] Flutter (Channel stable, 1.20.2, on Mac OS X 10.15.2 19C57, locale en-US)
    [!] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
        ✗ Android license status unknown.
          Try re-installing or updating your Android SDK Manager.
          See https://developer.android.com/studio/#downloads or visit https://flutter.dev/docs/get-started/install/macos#android-setup for detailed instructions.
    [✓] Xcode - develop for iOS and macOS (Xcode 11.6)
    [✓] Android Studio (version 3.6)
    [✓] Connected device (1 available)
    
    ! Doctor found issues in 1 category.
    
  3. added
    engineflutter/engine related. See also e: labels.
    P2Important issues not at the top of the work list
    and removed
    engineflutter/engine related. See also e: labels.
    on Aug 2, 2022
  4. huycozy commented on Mar 8, 2023

    @huycozy
    Member

    This issue is reproducible on the latest master channel. Verified on iPhone 7, iOS 15.7.2.

    Demo (Flutter app and iOS native Notes app)
    RPReplay_Final1678272885.MP4
    flutter doctor -v (master)
    [!] Flutter (Channel master, 3.9.0-1.0.pre.73, on macOS 13.0.1 22A400 darwin-x64, locale en-EE)
        • Flutter version 3.9.0-1.0.pre.73 on channel master at /Users/huynq/Documents/GitHub/flutter_master
        ! Warning: `flutter` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/flutter, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
        ! Warning: `dart` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/dart, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
        • Upstream repository https://github.com/flutter/flutter.git
        • Framework revision 9e5bec62eb (68 minutes ago), 2023-03-07 02:48:10 -0500
        • Engine revision 1c4aab7da9
        • Dart version 3.0.0 (build 3.0.0-300.0.dev)
        • DevTools version 2.22.2
        • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.
    
    [✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
        • Android SDK at /Users/huynq/Library/Android/sdk
        • Platform android-33, build-tools 31.0.0
        • ANDROID_HOME = /Users/huynq/Library/Android/sdk
        • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
        • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)
        • All Android licenses accepted.
    
    [✓] Xcode - develop for iOS and macOS (Xcode 14.1)
        • Xcode at /Applications/Xcode.app/Contents/Developer
        • Build 14B47b
        • CocoaPods version 1.11.3
    
    [✓] Chrome - develop for the web
        • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
    
    [!] Android Studio
        • Android Studio at /Applications/Android Studio Preview.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
        ✗ Unable to find bundled Java version.
        • Try updating or re-installing Android Studio.
    
    [✓] Android Studio (version 2022.1)
        • 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.15+0-b2043.56-8887301)
    
    [✓] IntelliJ IDEA Community Edition (version 2022.1.1)
        • IntelliJ at /Users/huynq/Library/Application Support/JetBrains/Toolbox/apps/IDEA-C/ch-0/221.5591.52/IntelliJ IDEA CE.app
        • 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
    
    [✓] VS Code (version 1.76.0)
        • VS Code at /Applications/Visual Studio Code.app/Contents
        • Flutter extension version 3.60.0
    
    [✓] Connected device (4 available)
        • Pixel 3a (mobile)      • 964AY0WL20                           • android-arm64  • Android 12 (API 32)
        • iPhone 14 Pro (mobile) • AB2EBB55-6852-40A7-9A12-057128370920 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-1 (simulator)
        • macOS (desktop)        • macos                                • darwin-x64     • macOS 13.0.1 22A400 darwin-x64
        • Chrome (web)           • chrome                               • web-javascript • Google Chrome 110.0.5481.177
    
    [✓] Network resources
        • All expected network resources are available.
    
    ! Doctor found issues in 2 categories.
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)a: fidelityMatching the OEM platforms betterf: gesturesflutter/packages/flutter/gestures repository.found in release: 3.9Found to occur in 3.9frameworkflutter/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