┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kitemlistcontainer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/kitemviews/kitemlistcontainer.cpp')
-rw-r--r--src/kitemviews/kitemlistcontainer.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/kitemviews/kitemlistcontainer.cpp b/src/kitemviews/kitemlistcontainer.cpp
index 2f9f5d401..65250832b 100644
--- a/src/kitemviews/kitemlistcontainer.cpp
+++ b/src/kitemviews/kitemlistcontainer.cpp
@@ -12,6 +12,9 @@
#include "kitemlistview.h"
#include "private/kitemlistsmoothscroller.h"
+#ifndef QT_NO_ACCESSIBILITY
+#include <QAccessibleEvent>
+#endif
#include <QApplication>
#include <QFontMetrics>
#include <QGraphicsScene>
@@ -195,6 +198,17 @@ void KItemListContainer::focusInEvent(QFocusEvent *event)
KItemListView *view = m_controller->view();
if (view) {
QApplication::sendEvent(view, event);
+
+ // We need to set the focus to the view or accessibility software will only announce the container (which has no information available itself).
+ // For some reason actively setting the focus to the view needs to be delayed or the focus will immediately go back to this container.
+ QTimer::singleShot(0, this, [this, view]() {
+ view->setFocus();
+#ifndef QT_NO_ACCESSIBILITY
+ QAccessibleEvent accessibleFocusInEvent(this, QAccessible::Focus);
+ accessibleFocusInEvent.setChild(0);
+ QAccessible::updateAccessibility(&accessibleFocusInEvent);
+#endif
+ });
}
}