-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
6.10.0 RC
-
None
-
Android 16, talkback enabled
This also affects current dev branch as of 20251001.
On Android 16, with Talkback enabled:
When having accessible items in a flickable, I can scroll the flickable with two fingers. However, if an item in the flickable is the currently focused accessibility item, the green focus frame isn't updated during nor after the scroll to match the new item position.
Debugging into the platform plugin and QtDeclarative, the Flickable implementation posts a QAccessible::ScrollingEnd event on flickEnded. This event is only processed if the flickable has a valid QAccessibleInterface, i.e. if I set name/role like the example below.
If processed, QtAccessibilityDelegate.notifyScrolledEvent() sends a AccessibilityEvent.TYPE_VIEW_SCROLLED event, but that doesn't seem to have any affect.
The docs (https://developer.android.com/reference/android/view/accessibility/AccessibilityEvent#TYPE_VIEW_SCROLLED) suggest that the event should provide more information about the scroll delta, etc., but that's not available in the QAccessibleEvent.
If I replace the TYPE_VIEW_SCROLLED event by a brute-force `QtNative.runAction(() -> invalidateVirtualViewId(viewId))`, the rectangle is updated when the flick ends.
import QtQuick import QtQuick.Controls Window { width: 640 height: 480 visible: true title: qsTr("Hello World") Flickable { id: flickable anchors.centerIn: parent width: parent.width height: parent.height / 2 contentHeight: column.implicitHeight Accessible.name: "Page" Accessible.role: Accessible.List clip: true Column { id: column Repeater { model: 20 Button { id: button text: qsTr("Button %1").arg(index) } } } } }