From: Frederik Gladhorn Date: Fri, 23 Mar 2012 16:40:38 +0000 (+0100) Subject: Do not automatically mark all text items as accessible. X-Git-Tag: 071012131707~692 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=60b9151d36a9fb84b771f18d2c517e122b08ed70;p=profile%2Fivi%2Fqtdeclarative.git Do not automatically mark all text items as accessible. This adds more confusion and fails more often due to invisible items and overlays that it helps. The test saw lots of "children" before that were text elements, these are gone now. With this the hack to make children based on item role invisible can go away. Change-Id: Ic5a3bba6e271747237e0e85168f4290bf596bc8a Reviewed-by: Jan-Arve Sæther --- diff --git a/src/quick/items/qquicktext.cpp b/src/quick/items/qquicktext.cpp index 864dde3..24dd10a 100644 --- a/src/quick/items/qquicktext.cpp +++ b/src/quick/items/qquicktext.cpp @@ -2359,9 +2359,6 @@ void QQuickText::componentComplete() QQuickItem::componentComplete(); if (d->updateOnComponentComplete) d->updateLayout(); - - // Enable accessibility for text items. - d->setAccessibleFlagAndListener(); } diff --git a/tests/auto/quick/qquickaccessible/data/statictext.qml b/tests/auto/quick/qquickaccessible/data/statictext.qml index a0821cf..7cf1b70 100644 --- a/tests/auto/quick/qquickaccessible/data/statictext.qml +++ b/tests/auto/quick/qquickaccessible/data/statictext.qml @@ -10,6 +10,10 @@ Item { width: 200 height: 50 text : "Hello Accessibility" + + // Setting any value of the attached property + // makes an item accessible. + Accessible.name: text } Text { diff --git a/tests/auto/quick/qquickaccessible/tst_qquickaccessible.cpp b/tests/auto/quick/qquickaccessible/tst_qquickaccessible.cpp index 48c07c6..ca04751 100644 --- a/tests/auto/quick/qquickaccessible/tst_qquickaccessible.cpp +++ b/tests/auto/quick/qquickaccessible/tst_qquickaccessible.cpp @@ -340,23 +340,23 @@ void tst_QQuickAccessible::hitTest() canvas->setSource(testFileUrl("hittest.qml")); canvas->show(); - QAI iface = QAI(QAccessible::queryAccessibleInterface(canvas)); - QVERIFY(iface.data()); - QAI rootItem = QAI(iface->child(0)); + QAI canvasIface = QAI(QAccessible::queryAccessibleInterface(canvas)); + QVERIFY(canvasIface.data()); + QAI rootItem = QAI(canvasIface->child(0)); QRect rootRect = rootItem->rect(); // hit the root item - QAI itemHit(iface->childAt(rootRect.x() + 200, rootRect.y() + 50)); - QVERIFY(itemHit); - QCOMPARE(rootRect, itemHit->rect()); + QAI rootItemIface(canvasIface->childAt(rootRect.x() + 200, rootRect.y() + 50)); + QVERIFY(rootItemIface); + QCOMPARE(rootRect, rootItemIface->rect()); // hit rect1 - QAI rect1(rootItem->child(1)); + QAI rect1(rootItem->child(0)); QRect rect1Rect = rect1->rect(); - itemHit = QAI(rootItem->childAt(rect1Rect.x() + 10, rect1Rect.y() + 10)); - QVERIFY(itemHit); - QCOMPARE(rect1Rect, itemHit->rect()); - QCOMPARE(itemHit->text(QAccessible::Name), QLatin1String("rect1")); + rootItemIface = QAI(rootItem->childAt(rect1Rect.x() + 10, rect1Rect.y() + 10)); + QVERIFY(rootItemIface); + QCOMPARE(rect1Rect, rootItemIface->rect()); + QCOMPARE(rootItemIface->text(QAccessible::Name), QLatin1String("rect1")); // should also work from top level (app) QAI app(QAccessible::queryAccessibleInterface(qApp)); @@ -366,16 +366,20 @@ void tst_QQuickAccessible::hitTest() QCOMPARE(itemHit2->text(QAccessible::Name), QLatin1String("rect1")); // hit rect201 - QAI rect2(rootItem->child(2)); - QAI rect20(rect2->child(1)); - QAI rect201(rect20->child(2)); + QAI rect2(rootItem->child(1)); + QVERIFY(rect2); + // FIXME: This is seems broken on mac + // QCOMPARE(rect2->rect().translated(rootItem->rect().x(), rootItem->rect().y()), QRect(0, 50, 100, 100)); + QAI rect20(rect2->child(0)); + QVERIFY(rect20); + QAI rect201(rect20->child(1)); QVERIFY(rect201); QRect rect201Rect = rect201->rect(); - itemHit = QAI(iface->childAt(rect201Rect.x() + 20, rect201Rect.y() + 20)); - QVERIFY(itemHit); - QCOMPARE(itemHit->rect(), rect201Rect); - QCOMPARE(itemHit->text(QAccessible::Name), QLatin1String("rect201")); + rootItemIface = QAI(canvasIface->childAt(rect201Rect.x() + 20, rect201Rect.y() + 20)); + QVERIFY(rootItemIface); + QCOMPARE(rootItemIface->rect(), rect201Rect); + QCOMPARE(rootItemIface->text(QAccessible::Name), QLatin1String("rect201")); delete canvas; }