diff options
author | J-P Nurmi <jpnurmi@theqtcompany.com> | 2016-02-24 13:59:19 +0100 |
---|---|---|
committer | J-P Nurmi <jpnurmi@theqtcompany.com> | 2016-02-25 08:21:32 +0000 |
commit | 609a658da0b9a73bbdcd9cfab8acd8f2b7329daf (patch) | |
tree | 51635f9ad91ede08c9168b8fbb6186617fcf6eb4 /tests/auto/accessibility | |
parent | 22624517ccbe780937ec2ba0b4264b71e38484bb (diff) |
Implement accessibility support for Popup and Menu
Change-Id: I55067bb1cb9888be8e0e991fb73c9365d93d04f4
Task-number: QTBUG-51316
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
Diffstat (limited to 'tests/auto/accessibility')
-rw-r--r-- | tests/auto/accessibility/accessibility.pro | 2 | ||||
-rw-r--r-- | tests/auto/accessibility/data/menu.qml | 12 | ||||
-rw-r--r-- | tests/auto/accessibility/data/popup.qml | 12 | ||||
-rw-r--r-- | tests/auto/accessibility/tst_accessibility.cpp | 20 |
4 files changed, 43 insertions, 3 deletions
diff --git a/tests/auto/accessibility/accessibility.pro b/tests/auto/accessibility/accessibility.pro index c57eba11..ca751265 100644 --- a/tests/auto/accessibility/accessibility.pro +++ b/tests/auto/accessibility/accessibility.pro @@ -4,7 +4,7 @@ SOURCES += tst_accessibility.cpp osx:CONFIG -= app_bundle -QT += core-private gui-private qml-private quick-private testlib +QT += core-private gui-private qml-private quick-private labstemplates-private testlib include (../shared/util.pri) diff --git a/tests/auto/accessibility/data/menu.qml b/tests/auto/accessibility/data/menu.qml new file mode 100644 index 00000000..8903bd0b --- /dev/null +++ b/tests/auto/accessibility/data/menu.qml @@ -0,0 +1,12 @@ +import QtQuick 2.5 +import QtQuick.Window 2.2 +import Qt.labs.controls 1.0 + +Window { + visible: true + + Menu { + id: menu + objectName: "menu" + } +} diff --git a/tests/auto/accessibility/data/popup.qml b/tests/auto/accessibility/data/popup.qml new file mode 100644 index 00000000..e95ef2b7 --- /dev/null +++ b/tests/auto/accessibility/data/popup.qml @@ -0,0 +1,12 @@ +import QtQuick 2.5 +import QtQuick.Window 2.2 +import Qt.labs.controls 1.0 + +Window { + visible: true + + Popup { + id: popup + objectName: "popup" + } +} diff --git a/tests/auto/accessibility/tst_accessibility.cpp b/tests/auto/accessibility/tst_accessibility.cpp index 16a138b5..8c05e2f2 100644 --- a/tests/auto/accessibility/tst_accessibility.cpp +++ b/tests/auto/accessibility/tst_accessibility.cpp @@ -41,6 +41,7 @@ #include <QtQml/qqmlcontext.h> #include <QtQuick/qquickview.h> #include <QtQuick/private/qquickitem_p.h> +#include <QtLabsTemplates/private/qquickpopup_p.h> #include "../shared/util.h" #include "../shared/visualtestutil.h" @@ -75,7 +76,9 @@ void tst_accessibility::a11y_data() // Frame // GroupBox QTest::newRow("Label") << "label" << 0x00000029 << "Label"; //QAccessible::StaticText + QTest::newRow("Menu") << "menu" << 0x0000000B << ""; //QAccessible::PopupMenu QTest::newRow("PageIndicator") << "pageindicator" << 0x00000027 << ""; //QAccessible::Indicator + QTest::newRow("Popup") << "popup" << 0x00000080 << ""; //QAccessible::LayeredPane QTest::newRow("ProgressBar") << "progressbar" << 0x00000030 << ""; //QAccessible::ProgressBar QTest::newRow("RadioButton") << "radiobutton" << 0x0000002D << "RadioButton"; //QAccessible::RadioButton QTest::newRow("RangeSlider") << "rangeslider" << 0x00000033 << ""; //QAccessible::Slider @@ -102,6 +105,14 @@ void tst_accessibility::a11y_data() QTest::newRow("WeekNumberColumn") << "weeknumbercolumn" << 0x0 << "WeekNumberColumn"; //QAccessible::NoRole } +static QQuickAccessibleAttached *accessibleAttached(QQuickItem *item) +{ + QQuickAccessibleAttached *acc = qobject_cast<QQuickAccessibleAttached *>(qmlAttachedPropertiesObject<QQuickAccessibleAttached>(item, false)); + if (!acc) + acc = item->findChild<QQuickAccessibleAttached *>(); + return acc; +} + void tst_accessibility::a11y() { QFETCH(QString, name); @@ -128,10 +139,15 @@ void tst_accessibility::a11y() QVERIFY(QTest::qWaitForWindowActive(window)); QQuickItem *item = findItem<QQuickItem>(window->contentItem(), name); + if (!item) { + QQuickPopup *popup = window->contentItem()->findChild<QQuickPopup *>(name); + if (popup) + item = popup->popupItem(); + } QVERIFY(item); #ifndef QT_NO_ACCESSIBILITY - QQuickAccessibleAttached *acc = qobject_cast<QQuickAccessibleAttached *>(qmlAttachedPropertiesObject<QQuickAccessibleAttached>(item, false)); + QQuickAccessibleAttached *acc = accessibleAttached(item); if (name != QLatin1Literal("dayofweekrow") && name != QLatin1Literal("monthgrid") && name != QLatin1Literal("weeknumbercolumn")) { @@ -140,7 +156,7 @@ void tst_accessibility::a11y() } else { QVERIFY(!acc); QAccessible::setActive(true); - acc = qobject_cast<QQuickAccessibleAttached *>(qmlAttachedPropertiesObject<QQuickAccessibleAttached>(item, false)); + acc = accessibleAttached(item); } } QVERIFY(acc); |