From 8b778c37b3c6909000966960d38acab5052ce671 Mon Sep 17 00:00:00 2001 From: Jan-Arve Saether Date: Tue, 15 May 2012 14:26:09 +0200 Subject: [PATCH] Accessibility: Implement invisible and checkable state MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Change-Id: I3a079b4171e611b0136ef1582f6f16f71cf8f340 Reviewed-by: Morten Johan Sørvig --- .../accessible/quick/qaccessiblequickitem.cpp | 5 ++++- .../qquickaccessible/tst_qquickaccessible.cpp | 8 ++++++++ 2 files changed, 12 insertions(+), 1 deletions(-) diff --git a/src/plugins/accessible/quick/qaccessiblequickitem.cpp b/src/plugins/accessible/quick/qaccessiblequickitem.cpp index 61dcbcf..f02128c 100644 --- a/src/plugins/accessible/quick/qaccessiblequickitem.cpp +++ b/src/plugins/accessible/quick/qaccessiblequickitem.cpp @@ -152,6 +152,9 @@ QAccessible::State QAccessibleQuickItem::state() const if (item()->hasActiveFocus()) state.focused = true; + if (!item()->canvas() ||!item()->isVisible() || qFuzzyIsNull(item()->opacity())) + state.invisible = true; + QAccessible::Role r = role(); switch (r) { case QAccessible::Button: { @@ -162,7 +165,7 @@ QAccessible::State QAccessibleQuickItem::state() const } case QAccessible::CheckBox: case QAccessible::RadioButton: { - // FIXME when states are extended: state.checkable = true; + state.checkable = true; state.checked = item()->property("checked").toBool(); break; } diff --git a/tests/auto/quick/qquickaccessible/tst_qquickaccessible.cpp b/tests/auto/quick/qquickaccessible/tst_qquickaccessible.cpp index 45a9d11..fa2c1cf 100644 --- a/tests/auto/quick/qquickaccessible/tst_qquickaccessible.cpp +++ b/tests/auto/quick/qquickaccessible/tst_qquickaccessible.cpp @@ -399,16 +399,24 @@ void tst_QQuickAccessible::checkableTest() QAI button1 = QAI(root->child(0)); QCOMPARE(button1->role(), QAccessible::Button); QVERIFY(!(button1->state().checked)); + QVERIFY(!(button1->state().checkable)); + QAI button2 = QAI(root->child(1)); QVERIFY(!(button2->state().checked)); + QVERIFY(button2->state().checkable); + QAI button3 = QAI(root->child(2)); QVERIFY(button3->state().checked); + QVERIFY(button3->state().checkable); QAI checkBox1 = QAI(root->child(3)); QCOMPARE(checkBox1->role(), QAccessible::CheckBox); QVERIFY((checkBox1->state().checked)); + QVERIFY(checkBox1->state().checkable); + QAI checkBox2 = QAI(root->child(4)); QVERIFY(!(checkBox2->state().checked)); + QVERIFY(checkBox2->state().checkable); } QTEST_MAIN(tst_QQuickAccessible) -- 1.7.2.5