From be96a21a3706d46f00a1f8609fcd19ee5760c121 Mon Sep 17 00:00:00 2001 From: Frederik Gladhorn Date: Sun, 5 Feb 2017 10:33:43 +0100 Subject: Implement QAccessibleQuickWindow::focusChild MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Jan Arve Sæther --- src/quick/accessible/qaccessiblequickview.cpp | 8 ++++++++ src/quick/accessible/qaccessiblequickview_p.h | 1 + 2 files changed, 9 insertions(+) (limited to 'src/quick/accessible') 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; -- cgit v1.2.3