diff options
author | André de la Rocha <andre.rocha@qt.io> | 2022-08-31 16:02:56 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2022-08-31 21:33:01 +0000 |
commit | 3bdd3b8aa51091e1519aea24306f1ea493d2bbb5 (patch) | |
tree | ee721e18aee2cc4df0f1dee0d6972be24f60d1dd /src | |
parent | d3375534ac3d459cc27a01b2510cc34a64162d11 (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.cpp | 22 |
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 |