summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndré de la Rocha <andre.rocha@qt.io>2022-08-31 16:02:56 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-08-31 21:33:01 +0000
commit3bdd3b8aa51091e1519aea24306f1ea493d2bbb5 (patch)
treeee721e18aee2cc4df0f1dee0d6972be24f60d1dd /src
parentd3375534ac3d459cc27a01b2510cc34a64162d11 (diff)
Fix tree/table/list accessibility state
The accessibility class associated with trees, tables and lists was reporting a default/empty state, causing issues with accessibility tools. Fixes: QTBUG-92964 Change-Id: I9c8ee5e7e582fd6b6a59cd70437eeddad0f4eb8e Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 0d3f09ac0231fca114aa58553144b78f8040a2e1) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src')
-rw-r--r--src/widgets/accessible/itemviews.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/widgets/accessible/itemviews.cpp b/src/widgets/accessible/itemviews.cpp
index 6da2461a6a..64204c2e59 100644
--- a/src/widgets/accessible/itemviews.cpp
+++ b/src/widgets/accessible/itemviews.cpp
@@ -373,7 +373,27 @@ QAccessible::Role QAccessibleTable::role() const
QAccessible::State QAccessibleTable::state() const
{
- return QAccessible::State();
+ QAccessible::State state;
+ const auto *w = view();
+
+ if (w->testAttribute(Qt::WA_WState_Visible) == false)
+ state.invisible = true;
+ if (w->focusPolicy() != Qt::NoFocus)
+ state.focusable = true;
+ if (w->hasFocus())
+ state.focused = true;
+ if (!w->isEnabled())
+ state.disabled = true;
+ if (w->isWindow()) {
+ if (w->windowFlags() & Qt::WindowSystemMenuHint)
+ state.movable = true;
+ if (w->minimumSize() != w->maximumSize())
+ state.sizeable = true;
+ if (w->isActiveWindow())
+ state.active = true;
+ }
+
+ return state;
}
QAccessibleInterface *QAccessibleTable::childAt(int x, int y) const