Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-119612

Screen Reader is slow to start reading a loaded QML component on Android

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P2: Important
    • None
    • 6.2.4
    • None
    • Android

    Description

      When a QML component is loading on Android while the TalkBack screen reader is running, the Qt framework fires too many TYPE_WINDOW_CONTENT_CHANGED accessibility events. This makes TalkBack slow to starting reading a QML component, because the flood of events need to be processed before TalkBack can start reading.

      A lot of QQuickItem::geometryChange calls happen during the component loading. This leads to QQuickItem::geometryChange calling QAccessible::updateAccessibility(QAccessible::LocationChanged), which triggers QtAccessibilityDelegate.notifyLocationChange. Eventually, this leads to as many sendEventForVirtualViewId(TYPE_WINDOW_CONTENT_CHANGED) calls on Android.

      This delay in screen reading can be 10 seconds or more for a medium or large QML component.

      A possible fix could be for Qt to collapse these TYPE_WINDOW_CONTENT_CHANGED events into one when a QML component is loading.

      See a similar problem in the Flutter framework here: https://github.com/flutter/flutter/issues/14534

      Please consider fixing this issue because it has a big effect on Accessibility on Android.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            smd Jan Arve
            vinocher V V
            Votes:
            2 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes