aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/templates/qquickcontrol.cpp10
-rw-r--r--src/templates/qquickcontrol_p.h1
-rw-r--r--tests/auto/accessibility/tst_accessibility.cpp10
3 files changed, 18 insertions, 3 deletions
diff --git a/src/templates/qquickcontrol.cpp b/src/templates/qquickcontrol.cpp
index c8b5287b..5f5e105e 100644
--- a/src/templates/qquickcontrol.cpp
+++ b/src/templates/qquickcontrol.cpp
@@ -700,6 +700,16 @@ void QQuickControl::setContentItem(QQuickItem *item)
}
}
+void QQuickControl::componentComplete()
+{
+ Q_D(QQuickControl);
+ QQuickItem::componentComplete();
+#ifndef QT_NO_ACCESSIBILITY
+ if (!d->accessibleAttached && QAccessible::isActive())
+ accessibilityActiveChanged(true);
+#endif
+}
+
void QQuickControl::mousePressEvent(QMouseEvent *event)
{
event->accept();
diff --git a/src/templates/qquickcontrol_p.h b/src/templates/qquickcontrol_p.h
index d5024bae..82b91343 100644
--- a/src/templates/qquickcontrol_p.h
+++ b/src/templates/qquickcontrol_p.h
@@ -138,6 +138,7 @@ Q_SIGNALS:
protected:
QQuickControl(QQuickControlPrivate &dd, QQuickItem *parent);
+ void componentComplete() Q_DECL_OVERRIDE;
void itemChange(ItemChange change, const ItemChangeData &value) Q_DECL_OVERRIDE;
void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
diff --git a/tests/auto/accessibility/tst_accessibility.cpp b/tests/auto/accessibility/tst_accessibility.cpp
index a9e04d59..866d3b13 100644
--- a/tests/auto/accessibility/tst_accessibility.cpp
+++ b/tests/auto/accessibility/tst_accessibility.cpp
@@ -135,9 +135,13 @@ void tst_accessibility::a11y()
if (name != QLatin1Literal("dayofweekrow")
&& name != QLatin1Literal("monthgrid")
&& name != QLatin1Literal("weeknumbercolumn")) {
- QVERIFY(!acc);
- QAccessible::setActive(true);
- acc = qobject_cast<QQuickAccessibleAttached *>(qmlAttachedPropertiesObject<QQuickAccessibleAttached>(item, false));
+ if (QAccessible::isActive()) {
+ QVERIFY(acc);
+ } else {
+ QVERIFY(!acc);
+ QAccessible::setActive(true);
+ acc = qobject_cast<QQuickAccessibleAttached *>(qmlAttachedPropertiesObject<QQuickAccessibleAttached>(item, false));
+ }
}
QVERIFY(acc);
QCOMPARE(acc->role(), (QAccessible::Role)role);