diff options
Diffstat (limited to 'src/quicktemplates2/qquicklabel.cpp')
-rw-r--r-- | src/quicktemplates2/qquicklabel.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/quicktemplates2/qquicklabel.cpp b/src/quicktemplates2/qquicklabel.cpp index 29f3538d..9937436c 100644 --- a/src/quicktemplates2/qquicklabel.cpp +++ b/src/quicktemplates2/qquicklabel.cpp @@ -248,9 +248,7 @@ void QQuickLabelPrivate::updatePalette(const QPalette &palette) void QQuickLabelPrivate::textChanged(const QString &text) { #if QT_CONFIG(accessibility) - Q_Q(QQuickLabel); - if (QQuickAccessibleAttached *accessibleAttached = QQuickControlPrivate::accessibleAttached(q)) - accessibleAttached->setName(text); + maybeSetAccessibleName(text); #else Q_UNUSED(text) #endif @@ -266,13 +264,24 @@ void QQuickLabelPrivate::accessibilityActiveChanged(bool active) QQuickAccessibleAttached *accessibleAttached = qobject_cast<QQuickAccessibleAttached *>(qmlAttachedPropertiesObject<QQuickAccessibleAttached>(q, true)); Q_ASSERT(accessibleAttached); accessibleAttached->setRole(accessibleRole()); - accessibleAttached->setName(text); + maybeSetAccessibleName(text); } QAccessible::Role QQuickLabelPrivate::accessibleRole() const { return QAccessible::StaticText; } + +void QQuickLabelPrivate::maybeSetAccessibleName(const QString &name) +{ + Q_Q(QQuickLabel); + auto accessibleAttached = qobject_cast<QQuickAccessibleAttached *>( + qmlAttachedPropertiesObject<QQuickAccessibleAttached>(q, true)); + if (accessibleAttached) { + if (!accessibleAttached->wasNameExplicitlySet()) + accessibleAttached->setNameImplicitly(name); + } +} #endif static inline QString backgroundName() { return QStringLiteral("background"); } |