Skip to content

[Linux] screen reader often stops working for Flutter apps #101513

@jpnurmi

Description

@jpnurmi

Steps to Reproduce

  1. Execute flutter create -t skeleton foo
  2. Run the Orca screen reader
    a. Execute tail -F orca.log in one xterm
    b. Execute orca -r --debug-file=orca.log in another xterm
  3. Execute flutter run
  4. Tab-navigate around the UI
  5. Restart the app if Orca reads out widgets
  6. Repeat steps 3-5 (until Orca stops reading the Flutter widgets)

Expected results:

Orca continues to work regardless of restarting the Flutter app.

Actual results:

Orca eventually stops working. According to orca.log the accessibility node tree breaks. You should see events similar to this:

vvvvv PROCESS OBJECT EVENT object:state-changed:focused vvvvv
15:41:10.882466 - OBJECT EVENT: object:state-changed:focused (1, 0, 0)
                                app.name='a11y_bug' name='' role='push button'
                                description=''
                                states='enabled focusable focused showing visible'
                                relations=''
                                interfaces='Accessible Action Collection Component Text'
                                attributes=''
                                path=[-1, 0, 0, 0, 0, -1, -1, -1, -1]

15:41:10.883095 - EVENT MANAGER: Getting script for [application | a11y_bug] (check: True)
15:41:10.885399 - EVENT MANAGER: Script is <orca.scripts.toolkits.gtk.script.Script object at 0x7f867d3e5a50>
15:41:10.885450 - EVENT MANAGER: Change active script: False (The script for this event is already active.)
15:41:10.887025 - INFO: Looking at [frame | a11y_bug] from [application | a11y_bug] /home/jpnurmi/Temp/a11y_bug/build/linux/x64/debug/bundle/a11y_bug 
15:41:10.887099 - INFO: [frame | a11y_bug] can be active window
15:41:10.887121 - ORCA: Active script is: <orca.scripts.toolkits.gtk.script.Script object at 0x7f867d3e5a50>
15:41:10.887200 - ZOMBIE: [push button | ]'s index is -1
15:41:10.887241 - ERROR: New locusOfFocus ([push button | ]) is zombie. Not updating.
15:41:10.887288 - EVENT MANAGER: locusOfFocus: [panel | ] activeScript: <orca.scripts.toolkits.gtk.script.Script object at 0x7f867d3e5a50>
TOTAL PROCESSING TIME: 0.0048
^^^^^ PROCESS OBJECT EVENT object:state-changed:focused ^^^^^
Code sample
Logs
[✓] Flutter (Channel master, 2.13.0-0.0.pre.424, on Ubuntu Jammy Jellyfish (development branch) 5.15.0-25-generic, locale en_US.UTF-8)
    • Flutter version 2.13.0-0.0.pre.424 at /home/jpnurmi/Flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 31668eef40 (7 hours ago), 2022-04-07 09:51:08 +0300
    • Engine revision 541b636563
    • Dart version 2.17.0 (build 2.17.0-266.0.dev)
    • DevTools version 2.12.1

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /home/jpnurmi/Android/Sdk
    • Platform android-31, build-tools 31.0.0
    • ANDROID_SDK_ROOT = /home/jpnurmi/Android/Sdk
    • Java binary at: /home/jpnurmi/Android/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)
    • All Android licenses accepted.

[✓] Linux toolchain - develop for Linux desktop
    • Ubuntu clang version 14.0.0-1ubuntu1
    • cmake version 3.22.1
    • ninja version 1.10.1
    • pkg-config version 0.29.2

[✓] Android Studio (version 2020.3)
    • Android Studio at /home/jpnurmi/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 11.0.10+0-b96-7249189)

[✓] VS Code
    • VS Code at /snap/code/current
    • Flutter extension version 3.38.1

[✓] Connected device (1 available)
    • Linux (desktop) • linux • linux-x64 • Ubuntu Jammy Jellyfish (development branch) 5.15.0-25-generic

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

Metadata

Metadata

Assignees

No one assigned

    Labels

    a: accessibilityAccessibility, e.g. VoiceOver or TalkBack. (aka a11y)a: desktopRunning on desktopfound in release: 2.10Found to occur in 2.10found in release: 2.13Found to occur in 2.13frameworkflutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onplatform-linuxBuilding on or for Linux specificallyr: fixedIssue is closed as already fixed in a newer version

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions