From c91b7f15ce3e38f013c91cdd7cf66145ee00a521 Mon Sep 17 00:00:00 2001 From: Andre de la Rocha Date: Wed, 25 Mar 2020 02:24:32 +0100 Subject: Add "checkable" state to QAccessibleTableCell The information about whether a table/tree item may be checked is necessary to allow the platform code (in particular, Windows UI Automation layer) to make this information available to screen readers. Task-number: QTBUG-81919 Change-Id: Id68eea4a004788751404d70567222a2c531578aa Reviewed-by: Friedemann Kleint Reviewed-by: Oliver Wolff --- src/widgets/accessible/itemviews.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/widgets/accessible') diff --git a/src/widgets/accessible/itemviews.cpp b/src/widgets/accessible/itemviews.cpp index 5a7fdf9a03..677e56806a 100644 --- a/src/widgets/accessible/itemviews.cpp +++ b/src/widgets/accessible/itemviews.cpp @@ -1035,10 +1035,14 @@ QAccessible::State QAccessibleTableCell::state() const st.selected = true; if (view->selectionModel()->currentIndex() == m_index) st.focused = true; - if (m_index.model()->data(m_index, Qt::CheckStateRole).toInt() == Qt::Checked) + + QVariant checkState = m_index.model()->data(m_index, Qt::CheckStateRole); + if (checkState.toInt() == Qt::Checked) st.checked = true; Qt::ItemFlags flags = m_index.flags(); + if ((flags & Qt::ItemIsUserCheckable) && checkState.isValid()) + st.checkable = true; if (flags & Qt::ItemIsSelectable) { st.selectable = true; st.focusable = true; -- cgit v1.2.3