diff options
author | Frederik Gladhorn <frederik.gladhorn@qt.io> | 2017-02-05 10:33:43 +0100 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@qt.io> | 2017-02-06 11:14:12 +0000 |
commit | be96a21a3706d46f00a1f8609fcd19ee5760c121 (patch) | |
tree | a3c94b988a146bcdcda65a20f43c99e4c2190818 | |
parent | 04c98022d934b5ba0a6492e3556416386ce5d70e (diff) |
Implement QAccessibleQuickWindow::focusChild
When we post a focus change notification, VoiceOver verifies what the application
thinks is focused. Without this function, when moving the keyboard focus
(e.g. by pressing tab) the VO focus will not follow.
[ChangeLog][QtQuick][Accessibility] Fixed focus handling so that keyboard
and VoiceOver's virtual focus are in sync (QTBUG-58340).
Task-number: QTBUG-58340
Change-Id: I7d4871c13b36c3ab9241614ca8a06452461e3cd1
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
-rw-r--r-- | src/quick/accessible/qaccessiblequickview.cpp | 8 | ||||
-rw-r--r-- | src/quick/accessible/qaccessiblequickview_p.h | 1 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/quick/accessible/qaccessiblequickview.cpp b/src/quick/accessible/qaccessiblequickview.cpp index 222690e4f2..b3d1b6fc0f 100644 --- a/src/quick/accessible/qaccessiblequickview.cpp +++ b/src/quick/accessible/qaccessiblequickview.cpp @@ -81,6 +81,14 @@ QAccessibleInterface *QAccessibleQuickWindow::child(int index) const return 0; } +QAccessibleInterface *QAccessibleQuickWindow::focusChild() const +{ + QObject *focusObject = window()->focusObject(); + if (focusObject) + return QAccessible::queryAccessibleInterface(focusObject); + return nullptr; +} + QAccessible::Role QAccessibleQuickWindow::role() const { return QAccessible::Window; // FIXME diff --git a/src/quick/accessible/qaccessiblequickview_p.h b/src/quick/accessible/qaccessiblequickview_p.h index 007a6fd990..fcd0bec85e 100644 --- a/src/quick/accessible/qaccessiblequickview_p.h +++ b/src/quick/accessible/qaccessiblequickview_p.h @@ -65,6 +65,7 @@ public: QAccessibleInterface *parent() const; QAccessibleInterface *child(int index) const; + QAccessibleInterface *focusChild() const override; QAccessible::Role role() const; QAccessible::State state() const; |