diff --git a/src/widgets/itemviews/qlistview.cpp b/src/widgets/itemviews/qlistview.cpp index a4cb4c76fbc..5835af36a87 100644 --- a/src/widgets/itemviews/qlistview.cpp +++ b/src/widgets/itemviews/qlistview.cpp @@ -3408,7 +3408,7 @@ void QListView::currentChanged(const QModelIndex ¤t, const QModelIndex &pr QAbstractItemView::currentChanged(current, previous); #if QT_CONFIG(accessibility) if (QAccessible::isActive()) { - if (current.isValid()) { + if (current.isValid() && hasFocus()) { int entry = visualIndex(current); QAccessibleEvent event(this, QAccessible::Focus); event.setChild(entry); diff --git a/src/widgets/itemviews/qtableview.cpp b/src/widgets/itemviews/qtableview.cpp index e08580bba29..1c2184620ae 100644 --- a/src/widgets/itemviews/qtableview.cpp +++ b/src/widgets/itemviews/qtableview.cpp @@ -3494,7 +3494,7 @@ void QTableView::currentChanged(const QModelIndex ¤t, const QModelIndex &p { #if QT_CONFIG(accessibility) if (QAccessible::isActive()) { - if (current.isValid()) { + if (current.isValid() && hasFocus()) { Q_D(QTableView); int entry = d->accessibleTable2Index(current); QAccessibleEvent event(this, QAccessible::Focus); diff --git a/src/widgets/itemviews/qtreeview.cpp b/src/widgets/itemviews/qtreeview.cpp index c6ed979c132..de8f5ecdc99 100644 --- a/src/widgets/itemviews/qtreeview.cpp +++ b/src/widgets/itemviews/qtreeview.cpp @@ -4054,7 +4054,7 @@ void QTreeView::currentChanged(const QModelIndex ¤t, const QModelIndex &pr viewport()->update(d->visualRect(current, QTreeViewPrivate::FullRow)); } #if QT_CONFIG(accessibility) - if (QAccessible::isActive() && current.isValid()) { + if (QAccessible::isActive() && current.isValid() && hasFocus()) { Q_D(QTreeView); QAccessibleEvent event(this, QAccessible::Focus);