Repository navigation
Description
General info
The issue is observed in Flutter versions 2.5.3 and 2.8.1.
The issue manifests a bit differently on Android and iOS.
The issue is observed on all iOS versions 15.x, up to the current 15.3.1. I could not test the issue on previous versions due to lack of devices.
This issue is observed on Android version 12. On Android 10, the behaviour is more or less as expected.
Steps to Reproduce
- Create a new Flutter app with
flutter createand paste the Code sample provided below in themain.dartfile - Run a project on a real device
- On iOS: Turn on a VoiceOver accessibility feature (if not already configured, VoiceOver can be turned on via a shortcut. To configure, go to Settings -> Accessibility -> Accessibility Shortcut)
OR
On Android: Turn on TalkBack (if not already configured, TalkBack can be turned on via a shortcut. To configure, go to Settings -> Accessibility -> TalkBack -> TalkBack Shortcut) - Select an element from the list with accessibility focus
- Scroll the list with 3-fingers-swipe gesture on iOS or 2-fingers-swipe on Android
- Observe what happens when the selected element moves out of the screen as you focus
NOTE: This issue is observed when scrolling upwards as well as downwards. It is also observed when using horizontal lists.
Expected results:
The focus navigates to the next elements of the screen gracefully like in popular apps, e.g. YouTube app.
Please check the attached behaviour of native Youtube app on iPad for a clear example.
Alternatively, it at least stays focused on the list and does not jump to appBar widget abruptly.
Actual results:
On iOS, the focus jumps to Scaffold's AppBar as soon as it leaves the viewport of the screen.
On Android, the focus disappears completely. If the user chooses to move the focus to the next element via Swipe Right gesture, AppBar is selected.
Alternatively, some people reported a bit different behaviour for Android: the focus stays on the list element until it is moved away from the phone's screen, even if the list's viewport is much smaller (e.g. there's big padding around the list). I could not reproduce this behaviour myself, therefore I will not provide a specific Code sample with paddings. The bottom line is, a11y focus behaviour is inconsistent in lists on Android 12 platform.
Code sample
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: const MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({
Key? key,
}) : super(key: key);
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
final items = List<String>.generate(1000, (i) => 'Item $i');
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Flutter Demo Home Page'),
),
body: Center(
child: ListView.builder(
itemCount: items.length,
itemBuilder: (context, index) {
return ListTile(
title: Text(items[index]),
);
},
),
),
);
}
}Logs
Running the app with flutter run --verbose did not provide any non-trivial information.
Running flutter analyze yields
Analyzing myapp...
No issues found! (ran in 0.8s)
flutter doctor -v output:
[✓] Flutter (Channel stable, 2.5.3, on macOS 12.2 21D49 darwin-arm, locale en-GB)
• Flutter version 2.5.3 at /Users/danya/fvm/versions/2.5.3
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 18116933e7 (4 months 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 32.0.0)
• Android SDK at /Users/danya/Library/Android/sdk
• Platform android-32, build-tools 32.0.0
• Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 13.2.1, Build version 13C100
• CocoaPods version 1.11.2
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2021.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.11+0-b60-7772763)
[✓] VS Code (version 1.64.2)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.34.0
[✓] Connected device (3 available)
• My iPad (mobile) • 00008020-0001386E3AA2402E • ios • iOS 15.3.1 19D52
• macOS (desktop) • macos • darwin-arm64 • macOS 12.2 21D49 darwin-arm
• Chrome (web) • chrome • web-javascript • Google Chrome 98.0.4758.80
• No issues found!
iPad Youtube App Behavior
voiceover_youtube.MP4
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsNo status


Activity
darshankawar commentedon Feb 17, 2022
Verified this behavior on latest stable (2.10.1) and on latest master using iOS device and can replicate the behavior mentioned in the report.
On latest stable, with voiceover ON and we select an item from the list and try to swipe up or down using three-finger swipe, the accessibility focus moves towards appbar, as shown below:
RPReplay-Final1645079912.MP4
As you can see in the video, after selecting an item from the list and trying to swipe, sometimes the accessibility focus is lost and other times, the focus shifts towards appbar.
On latest master though, I was unable to select an item from the list to focus, as while trying to tap, the accessibility focus didn't work.
Also verified this behavior on Samsung S10 (Android 11) device and observed that selecting a list and then swiping using two-finger gesture works properly and focus doesn't shift towards appbar. Although I noticed, that while scrolling up, the accessibility focus overrides the appbar and shows up as transparent pass through. Hence, I am unable to replicate the same behavior on Android. Since I don't have Android 12 to verify this, I'll leave the issue status and label as-is.
IMG-2223.mov
stable, master flutter doctor -v
[-]Accessibility Focus jumps to Scaffold's AppBar uncontrollably[/-][+]Accessibility Focus jumps to Scaffold's AppBar while trying to swipe down or up in a listview[/+]darshankawar commentedon Feb 17, 2022
/cc @chunhtai
fryette commentedon Jun 21, 2023
Dear Flutter team. Can you please update when this issue can be resolved? This blocking our new fluter app from release because after migration from native android/iOS implementation to Flutter we are not able to deliver proper UX to users who need accessibility features in app.
Thanks in advance!
shcherbuk96 commentedon Jul 5, 2023
Dear @darshankawar @chunhtai
Please, check the comment above
13 remaining items
hannah-hyj commentedon Nov 4, 2024
A easy workaround: update the cacheExtent to a larger number like 1000.0.
the current defaultCacheExtent is 250.0 (pixel) and it's smaller than screen height, so if you scroll to next item (1 finger swipe)it's fine but if you scroll to the next page (3 fingers scroll)sometimes it loses focus and it will focus to the app bar.
When I was testing, if I update defaultCacheExtent from 250.0 to 1000.0 the issue is gone.
The 250.0 is probably a eye-balled value before, but instead of updating the hard code value maybe we should also make it related to devices screen height? ( the OP mentioned they were testing on an ipad)
flutter-triage-bot commentedon Feb 23, 2026
This issue is assigned to @chunhtai but has had no recent status updates. Please consider unassigning this issue if it is not going to be addressed in the near future. This allows people to have a clearer picture of what work is actually planned. Thanks!
flutter-triage-bot commentedon May 12, 2026
This issue was assigned to @chunhtai but has had no status updates in a long time. To remove any ambiguity about whether the issue is being worked on, the assignee was removed.
zywek123 commentedon Sep 22, 2026
@jmagman I’ve discovered that until Flutter sends scroll events correctly with a message—e.g. page 5 of 15—the VO will crash on the AppBar after a few consecutive scrolls.