diff options
author | Mitch Curtis <mitch.curtis@qt.io> | 2019-11-05 12:51:02 +0100 |
---|---|---|
committer | Mitch Curtis <mitch.curtis@qt.io> | 2019-12-03 13:40:15 +0100 |
commit | 463898f0765b83f6c391f6802a0ee06796f9f6d2 (patch) | |
tree | 33942968476b73d725d268dca12cb5249081ac9a | |
parent | 8ee511bcd9f1376e9995ab3f30f6415ad60b7c05 (diff) |
Respect user-set Accessible.name
Check if the user has set Accessible.name before setting it to the
control's text/title/etc.
Fixes: QTBUG-66583
Change-Id: I8b2c8ab3f8a8ae8e76c8e6a241260b7f90eca254
Reviewed-by: Liang Qi <liang.qi@qt.io>
113 files changed, 538 insertions, 56 deletions
diff --git a/src/quicktemplates2/qquickabstractbutton.cpp b/src/quicktemplates2/qquickabstractbutton.cpp index e9fc2f36..969ab173 100644 --- a/src/quicktemplates2/qquickabstractbutton.cpp +++ b/src/quicktemplates2/qquickabstractbutton.cpp @@ -1126,7 +1126,7 @@ void QQuickAbstractButton::buttonChange(ButtonChange change) break; case ButtonTextChange: { const QString txt = text(); - setAccessibleName(txt); + maybeSetAccessibleName(txt); #if QT_CONFIG(shortcut) setShortcut(QKeySequence::mnemonic(txt)); #endif @@ -1152,7 +1152,7 @@ void QQuickAbstractButton::accessibilityActiveChanged(bool active) Q_D(QQuickAbstractButton); if (active) { - setAccessibleName(text()); + maybeSetAccessibleName(text()); setAccessibleProperty("pressed", d->pressed); setAccessibleProperty("checked", d->checked); setAccessibleProperty("checkable", d->checkable); diff --git a/src/quicktemplates2/qquickcombobox.cpp b/src/quicktemplates2/qquickcombobox.cpp index ae341192..86150a0f 100644 --- a/src/quicktemplates2/qquickcombobox.cpp +++ b/src/quicktemplates2/qquickcombobox.cpp @@ -472,7 +472,7 @@ void QQuickComboBoxPrivate::updateCurrentText(bool hasDelegateModelObject) if (currentText != text) { currentText = text; if (!hasDisplayText) - q->setAccessibleName(text); + q->maybeSetAccessibleName(text); emit q->currentTextChanged(); } if (!hasDisplayText && displayText != text) { @@ -1051,7 +1051,7 @@ void QQuickComboBox::setDisplayText(const QString &text) return; d->displayText = text; - setAccessibleName(text); + maybeSetAccessibleName(text); emit displayTextChanged(); } @@ -1970,7 +1970,7 @@ void QQuickComboBox::accessibilityActiveChanged(bool active) QQuickControl::accessibilityActiveChanged(active); if (active) { - setAccessibleName(d->hasDisplayText ? d->displayText : d->currentText); + maybeSetAccessibleName(d->hasDisplayText ? d->displayText : d->currentText); setAccessibleProperty("editable", isEditable()); } } diff --git a/src/quicktemplates2/qquickcontrol.cpp b/src/quicktemplates2/qquickcontrol.cpp index d107fef1..7e249dae 100644 --- a/src/quicktemplates2/qquickcontrol.cpp +++ b/src/quicktemplates2/qquickcontrol.cpp @@ -2282,11 +2282,13 @@ QString QQuickControl::accessibleName() const return QString(); } -void QQuickControl::setAccessibleName(const QString &name) +void QQuickControl::maybeSetAccessibleName(const QString &name) { #if QT_CONFIG(accessibility) - if (QQuickAccessibleAttached *accessibleAttached = QQuickControlPrivate::accessibleAttached(this)) - accessibleAttached->setName(name); + if (QQuickAccessibleAttached *accessibleAttached = QQuickControlPrivate::accessibleAttached(this)) { + if (!accessibleAttached->wasNameExplicitlySet()) + accessibleAttached->setNameImplicitly(name); + } #else Q_UNUSED(name) #endif diff --git a/src/quicktemplates2/qquickcontrol_p.h b/src/quicktemplates2/qquickcontrol_p.h index 3fe20f3b..d35630a7 100644 --- a/src/quicktemplates2/qquickcontrol_p.h +++ b/src/quicktemplates2/qquickcontrol_p.h @@ -287,7 +287,7 @@ protected: // helper functions which avoid to check QT_CONFIG(accessibility) QString accessibleName() const; - void setAccessibleName(const QString &name); + void maybeSetAccessibleName(const QString &name); QVariant accessibleProperty(const char *propertyName); bool setAccessibleProperty(const char *propertyName, const QVariant &value); diff --git a/src/quicktemplates2/qquickdialog.cpp b/src/quicktemplates2/qquickdialog.cpp index 43f6b6a5..a13b42ee 100644 --- a/src/quicktemplates2/qquickdialog.cpp +++ b/src/quicktemplates2/qquickdialog.cpp @@ -219,7 +219,6 @@ void QQuickDialog::setTitle(const QString &title) { Q_D(QQuickDialog); d->popupItem->setTitle(title); - setAccessibleName(title); } /*! @@ -536,7 +535,7 @@ void QQuickDialog::accessibilityActiveChanged(bool active) QQuickPopup::accessibilityActiveChanged(active); if (active) - setAccessibleName(d->popupItem->title()); + maybeSetAccessibleName(d->popupItem->title()); } #endif diff --git a/src/quicktemplates2/qquickgroupbox.cpp b/src/quicktemplates2/qquickgroupbox.cpp index a5da8a6f..3dbf3174 100644 --- a/src/quicktemplates2/qquickgroupbox.cpp +++ b/src/quicktemplates2/qquickgroupbox.cpp @@ -167,7 +167,7 @@ void QQuickGroupBox::setTitle(const QString &title) return; d->title = title; - setAccessibleName(title); + maybeSetAccessibleName(title); emit titleChanged(); } @@ -283,7 +283,7 @@ void QQuickGroupBox::accessibilityActiveChanged(bool active) QQuickFrame::accessibilityActiveChanged(active); if (active) - setAccessibleName(d->title); + maybeSetAccessibleName(d->title); } #endif 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"); } diff --git a/src/quicktemplates2/qquicklabel_p_p.h b/src/quicktemplates2/qquicklabel_p_p.h index e1010698..ce70c168 100644 --- a/src/quicktemplates2/qquicklabel_p_p.h +++ b/src/quicktemplates2/qquicklabel_p_p.h @@ -111,6 +111,7 @@ public: #if QT_CONFIG(accessibility) void accessibilityActiveChanged(bool active) override; QAccessible::Role accessibleRole() const override; + void maybeSetAccessibleName(const QString &name); #endif void cancelBackground(); diff --git a/src/quicktemplates2/qquickpage.cpp b/src/quicktemplates2/qquickpage.cpp index 0d2a7e3e..0a72bad7 100644 --- a/src/quicktemplates2/qquickpage.cpp +++ b/src/quicktemplates2/qquickpage.cpp @@ -285,7 +285,7 @@ void QQuickPage::setTitle(const QString &title) return; d->title = title; - setAccessibleName(title); + maybeSetAccessibleName(title); emit titleChanged(); } @@ -473,7 +473,7 @@ void QQuickPage::accessibilityActiveChanged(bool active) QQuickPane::accessibilityActiveChanged(active); if (active) - setAccessibleName(d->title); + maybeSetAccessibleName(d->title); } #endif diff --git a/src/quicktemplates2/qquickpopup.cpp b/src/quicktemplates2/qquickpopup.cpp index 5b945843..ecb2568e 100644 --- a/src/quicktemplates2/qquickpopup.cpp +++ b/src/quicktemplates2/qquickpopup.cpp @@ -2697,10 +2697,10 @@ QString QQuickPopup::accessibleName() const return d->popupItem->accessibleName(); } -void QQuickPopup::setAccessibleName(const QString &name) +void QQuickPopup::maybeSetAccessibleName(const QString &name) { Q_D(QQuickPopup); - d->popupItem->setAccessibleName(name); + d->popupItem->maybeSetAccessibleName(name); } QVariant QQuickPopup::accessibleProperty(const char *propertyName) diff --git a/src/quicktemplates2/qquickpopup_p.h b/src/quicktemplates2/qquickpopup_p.h index 12dbd247..dc3ebf6f 100644 --- a/src/quicktemplates2/qquickpopup_p.h +++ b/src/quicktemplates2/qquickpopup_p.h @@ -459,7 +459,7 @@ protected: #endif QString accessibleName() const; - void setAccessibleName(const QString &name); + void maybeSetAccessibleName(const QString &name); QVariant accessibleProperty(const char *propertyName); bool setAccessibleProperty(const char *propertyName, const QVariant &value); diff --git a/src/quicktemplates2/qquickpopupitem.cpp b/src/quicktemplates2/qquickpopupitem.cpp index 16d8c4f6..fcf23db5 100644 --- a/src/quicktemplates2/qquickpopupitem.cpp +++ b/src/quicktemplates2/qquickpopupitem.cpp @@ -45,6 +45,10 @@ #include <QtGui/private/qshortcutmap_p.h> #include <QtGui/private/qguiapplication_p.h> +#if QT_CONFIG(accessibility) +#include <QtQuick/private/qquickaccessibleattached_p.h> +#endif + QT_BEGIN_NAMESPACE class QQuickPopupItemPrivate : public QQuickPagePrivate @@ -401,7 +405,28 @@ QAccessible::Role QQuickPopupItem::accessibleRole() const void QQuickPopupItem::accessibilityActiveChanged(bool active) { Q_D(const QQuickPopupItem); + // Can't just use d->popup->accessibleName() here, because that refers to the accessible + // name of us, the popup item, which is not what we want. + const QQuickAccessibleAttached *popupAccessibleAttached = QQuickControlPrivate::accessibleAttached(d->popup); + const QString oldPopupName = popupAccessibleAttached ? popupAccessibleAttached->name() : QString(); + const bool wasNameExplicitlySetOnPopup = popupAccessibleAttached && popupAccessibleAttached->wasNameExplicitlySet(); + QQuickPage::accessibilityActiveChanged(active); + + QQuickAccessibleAttached *accessibleAttached = QQuickControlPrivate::accessibleAttached(this); + const QString ourName = accessibleAttached ? accessibleAttached->name() : QString(); + if (wasNameExplicitlySetOnPopup && accessibleAttached && ourName != oldPopupName) { + // The user set Accessible.name on the Popup. Since the Popup and its popup item + // have different accessible attached properties, the popup item doesn't know that + // a name was set on the Popup by the user, and that it should use that, rather than + // whatever QQuickPage sets. That's why we need to do it here. + // To avoid it being overridden by the call to accessibilityActiveChanged() below, + // we set it explicitly. It's safe to do this as the popup item is an internal implementation detail. + accessibleAttached->setName(oldPopupName); + } + + // This allows the different popup types to set a name on their popup item accordingly. + // For example: Dialog uses its title and ToolTip uses its text. d->popup->accessibilityActiveChanged(active); } #endif diff --git a/src/quicktemplates2/qquicktooltip.cpp b/src/quicktemplates2/qquicktooltip.cpp index 5c7eb46e..9ea0160e 100644 --- a/src/quicktemplates2/qquicktooltip.cpp +++ b/src/quicktemplates2/qquicktooltip.cpp @@ -188,7 +188,7 @@ void QQuickToolTip::setText(const QString &text) return; d->text = text; - setAccessibleName(text); + maybeSetAccessibleName(text); emit textChanged(); } @@ -351,7 +351,7 @@ void QQuickToolTip::accessibilityActiveChanged(bool active) QQuickPopup::accessibilityActiveChanged(active); if (active) - setAccessibleName(d->text); + maybeSetAccessibleName(d->text); } #endif diff --git a/tests/auto/accessibility/BLACKLIST b/tests/auto/accessibility/BLACKLIST new file mode 100644 index 00000000..fe7a87f8 --- /dev/null +++ b/tests/auto/accessibility/BLACKLIST @@ -0,0 +1,2 @@ +[a11y:Label] +opensuse-leap diff --git a/tests/auto/accessibility/data/abstractbutton.qml b/tests/auto/accessibility/data/defaults/abstractbutton.qml index b0922176..b0922176 100644 --- a/tests/auto/accessibility/data/abstractbutton.qml +++ b/tests/auto/accessibility/data/defaults/abstractbutton.qml diff --git a/tests/auto/accessibility/data/busyindicator.qml b/tests/auto/accessibility/data/defaults/busyindicator.qml index e1c33765..e1c33765 100644 --- a/tests/auto/accessibility/data/busyindicator.qml +++ b/tests/auto/accessibility/data/defaults/busyindicator.qml diff --git a/tests/auto/accessibility/data/button.qml b/tests/auto/accessibility/data/defaults/button.qml index 600c05da..600c05da 100644 --- a/tests/auto/accessibility/data/button.qml +++ b/tests/auto/accessibility/data/defaults/button.qml diff --git a/tests/auto/accessibility/data/checkbox.qml b/tests/auto/accessibility/data/defaults/checkbox.qml index f86a9a27..f86a9a27 100644 --- a/tests/auto/accessibility/data/checkbox.qml +++ b/tests/auto/accessibility/data/defaults/checkbox.qml diff --git a/tests/auto/accessibility/data/checkdelegate.qml b/tests/auto/accessibility/data/defaults/checkdelegate.qml index 2750052f..2750052f 100644 --- a/tests/auto/accessibility/data/checkdelegate.qml +++ b/tests/auto/accessibility/data/defaults/checkdelegate.qml diff --git a/tests/auto/accessibility/data/combobox.qml b/tests/auto/accessibility/data/defaults/combobox.qml index ec4e87ef..ec4e87ef 100644 --- a/tests/auto/accessibility/data/combobox.qml +++ b/tests/auto/accessibility/data/defaults/combobox.qml diff --git a/tests/auto/accessibility/data/container.qml b/tests/auto/accessibility/data/defaults/container.qml index b8d57eea..b8d57eea 100644 --- a/tests/auto/accessibility/data/container.qml +++ b/tests/auto/accessibility/data/defaults/container.qml diff --git a/tests/auto/accessibility/data/control.qml b/tests/auto/accessibility/data/defaults/control.qml index dac5f935..dac5f935 100644 --- a/tests/auto/accessibility/data/control.qml +++ b/tests/auto/accessibility/data/defaults/control.qml diff --git a/tests/auto/accessibility/data/dayofweekrow-2.qml b/tests/auto/accessibility/data/defaults/dayofweekrow-2.qml index 96c750cb..96c750cb 100644 --- a/tests/auto/accessibility/data/dayofweekrow-2.qml +++ b/tests/auto/accessibility/data/defaults/dayofweekrow-2.qml diff --git a/tests/auto/accessibility/data/dayofweekrow.qml b/tests/auto/accessibility/data/defaults/dayofweekrow.qml index a2aa44ec..a2aa44ec 100644 --- a/tests/auto/accessibility/data/dayofweekrow.qml +++ b/tests/auto/accessibility/data/defaults/dayofweekrow.qml diff --git a/tests/auto/accessibility/data/dial.qml b/tests/auto/accessibility/data/defaults/dial.qml index 9a471548..9a471548 100644 --- a/tests/auto/accessibility/data/dial.qml +++ b/tests/auto/accessibility/data/defaults/dial.qml diff --git a/tests/auto/accessibility/data/dialog.qml b/tests/auto/accessibility/data/defaults/dialog.qml index 20317a31..20317a31 100644 --- a/tests/auto/accessibility/data/dialog.qml +++ b/tests/auto/accessibility/data/defaults/dialog.qml diff --git a/tests/auto/accessibility/data/drawer.qml b/tests/auto/accessibility/data/defaults/drawer.qml index 9b0db5fa..9b0db5fa 100644 --- a/tests/auto/accessibility/data/drawer.qml +++ b/tests/auto/accessibility/data/defaults/drawer.qml diff --git a/tests/auto/accessibility/data/frame.qml b/tests/auto/accessibility/data/defaults/frame.qml index 02e45a78..02e45a78 100644 --- a/tests/auto/accessibility/data/frame.qml +++ b/tests/auto/accessibility/data/defaults/frame.qml diff --git a/tests/auto/accessibility/data/groupbox.qml b/tests/auto/accessibility/data/defaults/groupbox.qml index 0fa8cff5..0fa8cff5 100644 --- a/tests/auto/accessibility/data/groupbox.qml +++ b/tests/auto/accessibility/data/defaults/groupbox.qml diff --git a/tests/auto/accessibility/data/itemdelegate.qml b/tests/auto/accessibility/data/defaults/itemdelegate.qml index 52831648..52831648 100644 --- a/tests/auto/accessibility/data/itemdelegate.qml +++ b/tests/auto/accessibility/data/defaults/itemdelegate.qml diff --git a/tests/auto/accessibility/data/label.qml b/tests/auto/accessibility/data/defaults/label.qml index 6d7466bc..6d7466bc 100644 --- a/tests/auto/accessibility/data/label.qml +++ b/tests/auto/accessibility/data/defaults/label.qml diff --git a/tests/auto/accessibility/data/menu.qml b/tests/auto/accessibility/data/defaults/menu.qml index 126914d1..126914d1 100644 --- a/tests/auto/accessibility/data/menu.qml +++ b/tests/auto/accessibility/data/defaults/menu.qml diff --git a/tests/auto/accessibility/data/menuitem.qml b/tests/auto/accessibility/data/defaults/menuitem.qml index 97fd478f..97fd478f 100644 --- a/tests/auto/accessibility/data/menuitem.qml +++ b/tests/auto/accessibility/data/defaults/menuitem.qml diff --git a/tests/auto/accessibility/data/monthgrid-2.qml b/tests/auto/accessibility/data/defaults/monthgrid-2.qml index 6368d090..6368d090 100644 --- a/tests/auto/accessibility/data/monthgrid-2.qml +++ b/tests/auto/accessibility/data/defaults/monthgrid-2.qml diff --git a/tests/auto/accessibility/data/monthgrid.qml b/tests/auto/accessibility/data/defaults/monthgrid.qml index 03de2499..03de2499 100644 --- a/tests/auto/accessibility/data/monthgrid.qml +++ b/tests/auto/accessibility/data/defaults/monthgrid.qml diff --git a/tests/auto/accessibility/data/page.qml b/tests/auto/accessibility/data/defaults/page.qml index 84036878..84036878 100644 --- a/tests/auto/accessibility/data/page.qml +++ b/tests/auto/accessibility/data/defaults/page.qml diff --git a/tests/auto/accessibility/data/pageindicator.qml b/tests/auto/accessibility/data/defaults/pageindicator.qml index 30184167..30184167 100644 --- a/tests/auto/accessibility/data/pageindicator.qml +++ b/tests/auto/accessibility/data/defaults/pageindicator.qml diff --git a/tests/auto/accessibility/data/pane.qml b/tests/auto/accessibility/data/defaults/pane.qml index bde4fad5..bde4fad5 100644 --- a/tests/auto/accessibility/data/pane.qml +++ b/tests/auto/accessibility/data/defaults/pane.qml diff --git a/tests/auto/accessibility/data/popup.qml b/tests/auto/accessibility/data/defaults/popup.qml index 907d0c55..907d0c55 100644 --- a/tests/auto/accessibility/data/popup.qml +++ b/tests/auto/accessibility/data/defaults/popup.qml diff --git a/tests/auto/accessibility/data/progressbar.qml b/tests/auto/accessibility/data/defaults/progressbar.qml index 74b2cb84..74b2cb84 100644 --- a/tests/auto/accessibility/data/progressbar.qml +++ b/tests/auto/accessibility/data/defaults/progressbar.qml diff --git a/tests/auto/accessibility/data/radiobutton.qml b/tests/auto/accessibility/data/defaults/radiobutton.qml index 1b046d3e..1b046d3e 100644 --- a/tests/auto/accessibility/data/radiobutton.qml +++ b/tests/auto/accessibility/data/defaults/radiobutton.qml diff --git a/tests/auto/accessibility/data/radiodelegate.qml b/tests/auto/accessibility/data/defaults/radiodelegate.qml index f2bec8bc..f2bec8bc 100644 --- a/tests/auto/accessibility/data/radiodelegate.qml +++ b/tests/auto/accessibility/data/defaults/radiodelegate.qml diff --git a/tests/auto/accessibility/data/rangeslider.qml b/tests/auto/accessibility/data/defaults/rangeslider.qml index 95bff377..95bff377 100644 --- a/tests/auto/accessibility/data/rangeslider.qml +++ b/tests/auto/accessibility/data/defaults/rangeslider.qml diff --git a/tests/auto/accessibility/data/roundbutton.qml b/tests/auto/accessibility/data/defaults/roundbutton.qml index 20f0ed9a..20f0ed9a 100644 --- a/tests/auto/accessibility/data/roundbutton.qml +++ b/tests/auto/accessibility/data/defaults/roundbutton.qml diff --git a/tests/auto/accessibility/data/scrollbar.qml b/tests/auto/accessibility/data/defaults/scrollbar.qml index 1e7cf155..1e7cf155 100644 --- a/tests/auto/accessibility/data/scrollbar.qml +++ b/tests/auto/accessibility/data/defaults/scrollbar.qml diff --git a/tests/auto/accessibility/data/scrollindicator.qml b/tests/auto/accessibility/data/defaults/scrollindicator.qml index 24ef9271..24ef9271 100644 --- a/tests/auto/accessibility/data/scrollindicator.qml +++ b/tests/auto/accessibility/data/defaults/scrollindicator.qml diff --git a/tests/auto/accessibility/data/slider.qml b/tests/auto/accessibility/data/defaults/slider.qml index 0d1db79c..0d1db79c 100644 --- a/tests/auto/accessibility/data/slider.qml +++ b/tests/auto/accessibility/data/defaults/slider.qml diff --git a/tests/auto/accessibility/data/spinbox.qml b/tests/auto/accessibility/data/defaults/spinbox.qml index 3da1f868..3da1f868 100644 --- a/tests/auto/accessibility/data/spinbox.qml +++ b/tests/auto/accessibility/data/defaults/spinbox.qml diff --git a/tests/auto/accessibility/data/stackview.qml b/tests/auto/accessibility/data/defaults/stackview.qml index 48cb384e..48cb384e 100644 --- a/tests/auto/accessibility/data/stackview.qml +++ b/tests/auto/accessibility/data/defaults/stackview.qml diff --git a/tests/auto/accessibility/data/swipedelegate.qml b/tests/auto/accessibility/data/defaults/swipedelegate.qml index d6f503c4..d6f503c4 100644 --- a/tests/auto/accessibility/data/swipedelegate.qml +++ b/tests/auto/accessibility/data/defaults/swipedelegate.qml diff --git a/tests/auto/accessibility/data/swipeview.qml b/tests/auto/accessibility/data/defaults/swipeview.qml index efb185e6..efb185e6 100644 --- a/tests/auto/accessibility/data/swipeview.qml +++ b/tests/auto/accessibility/data/defaults/swipeview.qml diff --git a/tests/auto/accessibility/data/switch.qml b/tests/auto/accessibility/data/defaults/switch.qml index b9c8a572..b9c8a572 100644 --- a/tests/auto/accessibility/data/switch.qml +++ b/tests/auto/accessibility/data/defaults/switch.qml diff --git a/tests/auto/accessibility/data/switchdelegate.qml b/tests/auto/accessibility/data/defaults/switchdelegate.qml index d0d9599c..d0d9599c 100644 --- a/tests/auto/accessibility/data/switchdelegate.qml +++ b/tests/auto/accessibility/data/defaults/switchdelegate.qml diff --git a/tests/auto/accessibility/data/tabbar.qml b/tests/auto/accessibility/data/defaults/tabbar.qml index d65b1305..d65b1305 100644 --- a/tests/auto/accessibility/data/tabbar.qml +++ b/tests/auto/accessibility/data/defaults/tabbar.qml diff --git a/tests/auto/accessibility/data/tabbutton.qml b/tests/auto/accessibility/data/defaults/tabbutton.qml index 72277a9f..72277a9f 100644 --- a/tests/auto/accessibility/data/tabbutton.qml +++ b/tests/auto/accessibility/data/defaults/tabbutton.qml diff --git a/tests/auto/accessibility/data/textarea.qml b/tests/auto/accessibility/data/defaults/textarea.qml index c861cda4..c861cda4 100644 --- a/tests/auto/accessibility/data/textarea.qml +++ b/tests/auto/accessibility/data/defaults/textarea.qml diff --git a/tests/auto/accessibility/data/textfield.qml b/tests/auto/accessibility/data/defaults/textfield.qml index 222a1223..222a1223 100644 --- a/tests/auto/accessibility/data/textfield.qml +++ b/tests/auto/accessibility/data/defaults/textfield.qml diff --git a/tests/auto/accessibility/data/toolbar.qml b/tests/auto/accessibility/data/defaults/toolbar.qml index f8cbe311..f8cbe311 100644 --- a/tests/auto/accessibility/data/toolbar.qml +++ b/tests/auto/accessibility/data/defaults/toolbar.qml diff --git a/tests/auto/accessibility/data/toolbutton.qml b/tests/auto/accessibility/data/defaults/toolbutton.qml index 84d67cfa..84d67cfa 100644 --- a/tests/auto/accessibility/data/toolbutton.qml +++ b/tests/auto/accessibility/data/defaults/toolbutton.qml diff --git a/tests/auto/accessibility/data/tooltip.qml b/tests/auto/accessibility/data/defaults/tooltip.qml index a6f7718d..a6f7718d 100644 --- a/tests/auto/accessibility/data/tooltip.qml +++ b/tests/auto/accessibility/data/defaults/tooltip.qml diff --git a/tests/auto/accessibility/data/tumbler.qml b/tests/auto/accessibility/data/defaults/tumbler.qml index fda5c2bd..fda5c2bd 100644 --- a/tests/auto/accessibility/data/tumbler.qml +++ b/tests/auto/accessibility/data/defaults/tumbler.qml diff --git a/tests/auto/accessibility/data/weeknumbercolumn-2.qml b/tests/auto/accessibility/data/defaults/weeknumbercolumn-2.qml index 2c5b836b..2c5b836b 100644 --- a/tests/auto/accessibility/data/weeknumbercolumn-2.qml +++ b/tests/auto/accessibility/data/defaults/weeknumbercolumn-2.qml diff --git a/tests/auto/accessibility/data/weeknumbercolumn.qml b/tests/auto/accessibility/data/defaults/weeknumbercolumn.qml index 71d533ef..71d533ef 100644 --- a/tests/auto/accessibility/data/weeknumbercolumn.qml +++ b/tests/auto/accessibility/data/defaults/weeknumbercolumn.qml diff --git a/tests/auto/accessibility/data/override/abstractbutton.qml b/tests/auto/accessibility/data/override/abstractbutton.qml new file mode 100644 index 00000000..67344329 --- /dev/null +++ b/tests/auto/accessibility/data/override/abstractbutton.qml @@ -0,0 +1,7 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +AbstractButton { + text: "AbstractButton" + Accessible.name: text + "Override" +} diff --git a/tests/auto/accessibility/data/override/busyindicator.qml b/tests/auto/accessibility/data/override/busyindicator.qml new file mode 100644 index 00000000..cc2afbc5 --- /dev/null +++ b/tests/auto/accessibility/data/override/busyindicator.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +BusyIndicator { + Accessible.name: "BusyIndicatorOverride" +} diff --git a/tests/auto/accessibility/data/override/button.qml b/tests/auto/accessibility/data/override/button.qml new file mode 100644 index 00000000..8e1bdb5f --- /dev/null +++ b/tests/auto/accessibility/data/override/button.qml @@ -0,0 +1,7 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +Button { + text: "Button" + Accessible.name: text + "Override" +} diff --git a/tests/auto/accessibility/data/override/checkbox.qml b/tests/auto/accessibility/data/override/checkbox.qml new file mode 100644 index 00000000..ec532d65 --- /dev/null +++ b/tests/auto/accessibility/data/override/checkbox.qml @@ -0,0 +1,7 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +CheckBox { + text: "CheckBox" + Accessible.name: text + "Override" +} diff --git a/tests/auto/accessibility/data/override/checkdelegate.qml b/tests/auto/accessibility/data/override/checkdelegate.qml new file mode 100644 index 00000000..94bb0ee0 --- /dev/null +++ b/tests/auto/accessibility/data/override/checkdelegate.qml @@ -0,0 +1,7 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +CheckDelegate { + text: "CheckDelegate" + Accessible.name: text + "Override" +} diff --git a/tests/auto/accessibility/data/override/combobox.qml b/tests/auto/accessibility/data/override/combobox.qml new file mode 100644 index 00000000..dc087212 --- /dev/null +++ b/tests/auto/accessibility/data/override/combobox.qml @@ -0,0 +1,7 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +ComboBox { + model: ["ComboBox"] + Accessible.name: model[0] + "Override" +} diff --git a/tests/auto/accessibility/data/override/container.qml b/tests/auto/accessibility/data/override/container.qml new file mode 100644 index 00000000..987b8336 --- /dev/null +++ b/tests/auto/accessibility/data/override/container.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +Container { + Accessible.name: "ContainerOverride" +} diff --git a/tests/auto/accessibility/data/override/control.qml b/tests/auto/accessibility/data/override/control.qml new file mode 100644 index 00000000..72f92c3d --- /dev/null +++ b/tests/auto/accessibility/data/override/control.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +Control { + Accessible.name: "ControlOverride" +} diff --git a/tests/auto/accessibility/data/override/dayofweekrow-2.qml b/tests/auto/accessibility/data/override/dayofweekrow-2.qml new file mode 100644 index 00000000..344bd94c --- /dev/null +++ b/tests/auto/accessibility/data/override/dayofweekrow-2.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import Qt.labs.calendar 1.0 + +DayOfWeekRow { + Accessible.name: "Override" +} diff --git a/tests/auto/accessibility/data/override/dayofweekrow.qml b/tests/auto/accessibility/data/override/dayofweekrow.qml new file mode 100644 index 00000000..e1e682c5 --- /dev/null +++ b/tests/auto/accessibility/data/override/dayofweekrow.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import Qt.labs.calendar 1.0 + +DayOfWeekRow { + Accessible.name: "DayOfWeekRowOverride" +} diff --git a/tests/auto/accessibility/data/override/dial.qml b/tests/auto/accessibility/data/override/dial.qml new file mode 100644 index 00000000..558b31ea --- /dev/null +++ b/tests/auto/accessibility/data/override/dial.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +Dial { + Accessible.name: "DialOverride" +} diff --git a/tests/auto/accessibility/data/override/dialog.qml b/tests/auto/accessibility/data/override/dialog.qml new file mode 100644 index 00000000..30843ffd --- /dev/null +++ b/tests/auto/accessibility/data/override/dialog.qml @@ -0,0 +1,7 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +Dialog { + title: "Dialog" + Accessible.name: title + "Override" +} diff --git a/tests/auto/accessibility/data/override/drawer.qml b/tests/auto/accessibility/data/override/drawer.qml new file mode 100644 index 00000000..9867d27d --- /dev/null +++ b/tests/auto/accessibility/data/override/drawer.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +Drawer { + Accessible.name: "DrawerOverride" +} diff --git a/tests/auto/accessibility/data/override/frame.qml b/tests/auto/accessibility/data/override/frame.qml new file mode 100644 index 00000000..0e99e8c3 --- /dev/null +++ b/tests/auto/accessibility/data/override/frame.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +Frame { + Accessible.name: "FrameOverride" +} diff --git a/tests/auto/accessibility/data/override/groupbox.qml b/tests/auto/accessibility/data/override/groupbox.qml new file mode 100644 index 00000000..ab58d30b --- /dev/null +++ b/tests/auto/accessibility/data/override/groupbox.qml @@ -0,0 +1,7 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +GroupBox { + title: "GroupBox" + Accessible.name: title + "Override" +} diff --git a/tests/auto/accessibility/data/override/itemdelegate.qml b/tests/auto/accessibility/data/override/itemdelegate.qml new file mode 100644 index 00000000..4f25efd3 --- /dev/null +++ b/tests/auto/accessibility/data/override/itemdelegate.qml @@ -0,0 +1,7 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +ItemDelegate { + text: "ItemDelegate" + Accessible.name: text + "Override" +} diff --git a/tests/auto/accessibility/data/override/label.qml b/tests/auto/accessibility/data/override/label.qml new file mode 100644 index 00000000..235c0661 --- /dev/null +++ b/tests/auto/accessibility/data/override/label.qml @@ -0,0 +1,7 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +Label { + text: "Label" + Accessible.name: text + "Override" +} diff --git a/tests/auto/accessibility/data/override/menu.qml b/tests/auto/accessibility/data/override/menu.qml new file mode 100644 index 00000000..15628ea5 --- /dev/null +++ b/tests/auto/accessibility/data/override/menu.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +Menu { + Accessible.name: "MenuOverride" +} diff --git a/tests/auto/accessibility/data/override/menuitem.qml b/tests/auto/accessibility/data/override/menuitem.qml new file mode 100644 index 00000000..89bdaf9a --- /dev/null +++ b/tests/auto/accessibility/data/override/menuitem.qml @@ -0,0 +1,7 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +MenuItem { + text: "MenuItem" + Accessible.name: text + "Override" +} diff --git a/tests/auto/accessibility/data/override/monthgrid-2.qml b/tests/auto/accessibility/data/override/monthgrid-2.qml new file mode 100644 index 00000000..f56f7788 --- /dev/null +++ b/tests/auto/accessibility/data/override/monthgrid-2.qml @@ -0,0 +1,7 @@ +import QtQuick 2.12 +import Qt.labs.calendar 1.0 + +MonthGrid { + title: "MonthGrid" + Accessible.name: title + "Override" +} diff --git a/tests/auto/accessibility/data/override/monthgrid.qml b/tests/auto/accessibility/data/override/monthgrid.qml new file mode 100644 index 00000000..f56f7788 --- /dev/null +++ b/tests/auto/accessibility/data/override/monthgrid.qml @@ -0,0 +1,7 @@ +import QtQuick 2.12 +import Qt.labs.calendar 1.0 + +MonthGrid { + title: "MonthGrid" + Accessible.name: title + "Override" +} diff --git a/tests/auto/accessibility/data/override/page.qml b/tests/auto/accessibility/data/override/page.qml new file mode 100644 index 00000000..0d275d84 --- /dev/null +++ b/tests/auto/accessibility/data/override/page.qml @@ -0,0 +1,7 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +Page { + title: "Page" + Accessible.name: title + "Override" +} diff --git a/tests/auto/accessibility/data/override/pageindicator.qml b/tests/auto/accessibility/data/override/pageindicator.qml new file mode 100644 index 00000000..4af84eda --- /dev/null +++ b/tests/auto/accessibility/data/override/pageindicator.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +PageIndicator { + Accessible.name: "PageIndicatorOverride" +} diff --git a/tests/auto/accessibility/data/override/pane.qml b/tests/auto/accessibility/data/override/pane.qml new file mode 100644 index 00000000..b2f27db2 --- /dev/null +++ b/tests/auto/accessibility/data/override/pane.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +Pane { + Accessible.name: "PaneOverride" +} diff --git a/tests/auto/accessibility/data/override/popup.qml b/tests/auto/accessibility/data/override/popup.qml new file mode 100644 index 00000000..e1126e2f --- /dev/null +++ b/tests/auto/accessibility/data/override/popup.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +Popup { + Accessible.name: "PopupOverride" +} diff --git a/tests/auto/accessibility/data/override/progressbar.qml b/tests/auto/accessibility/data/override/progressbar.qml new file mode 100644 index 00000000..bba0998a --- /dev/null +++ b/tests/auto/accessibility/data/override/progressbar.qml @@ -0,0 +1,10 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +ProgressBar { + from: 0 + to: 100 + value: 50 + + Accessible.name: "ProgressBarOverride" +} diff --git a/tests/auto/accessibility/data/override/radiobutton.qml b/tests/auto/accessibility/data/override/radiobutton.qml new file mode 100644 index 00000000..89ad797d --- /dev/null +++ b/tests/auto/accessibility/data/override/radiobutton.qml @@ -0,0 +1,7 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +RadioButton { + text: "RadioButton" + Accessible.name: text + "Override" +} diff --git a/tests/auto/accessibility/data/override/radiodelegate.qml b/tests/auto/accessibility/data/override/radiodelegate.qml new file mode 100644 index 00000000..1e6bee91 --- /dev/null +++ b/tests/auto/accessibility/data/override/radiodelegate.qml @@ -0,0 +1,7 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +RadioDelegate { + text: "RadioDelegate" + Accessible.name: text + "Override" +} diff --git a/tests/auto/accessibility/data/override/rangeslider.qml b/tests/auto/accessibility/data/override/rangeslider.qml new file mode 100644 index 00000000..8758a19f --- /dev/null +++ b/tests/auto/accessibility/data/override/rangeslider.qml @@ -0,0 +1,13 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +RangeSlider { + from: 0 + to: 100 + first.value: 25 + second.value: 75 + stepSize: 1 + orientation: Qt.Horizontal + + Accessible.name: "RangeSliderOverride" +} diff --git a/tests/auto/accessibility/data/override/roundbutton.qml b/tests/auto/accessibility/data/override/roundbutton.qml new file mode 100644 index 00000000..c338afd1 --- /dev/null +++ b/tests/auto/accessibility/data/override/roundbutton.qml @@ -0,0 +1,7 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +RoundButton { + text: "RoundButton" + Accessible.name: text + "Override" +} diff --git a/tests/auto/accessibility/data/override/scrollbar.qml b/tests/auto/accessibility/data/override/scrollbar.qml new file mode 100644 index 00000000..4849994f --- /dev/null +++ b/tests/auto/accessibility/data/override/scrollbar.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +ScrollBar { + Accessible.name: "ScrollBarOverride" +} diff --git a/tests/auto/accessibility/data/override/scrollindicator.qml b/tests/auto/accessibility/data/override/scrollindicator.qml new file mode 100644 index 00000000..2e85d8db --- /dev/null +++ b/tests/auto/accessibility/data/override/scrollindicator.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +ScrollIndicator { + Accessible.name: "ScrollIndicatorOverride" +} diff --git a/tests/auto/accessibility/data/override/slider.qml b/tests/auto/accessibility/data/override/slider.qml new file mode 100644 index 00000000..1fde4977 --- /dev/null +++ b/tests/auto/accessibility/data/override/slider.qml @@ -0,0 +1,11 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +Slider { + from: 0 + to: 100 + value: 50 + stepSize: 1 + orientation: Qt.Horizontal + Accessible.name: "SliderOverride" +} diff --git a/tests/auto/accessibility/data/override/spinbox.qml b/tests/auto/accessibility/data/override/spinbox.qml new file mode 100644 index 00000000..51c883b1 --- /dev/null +++ b/tests/auto/accessibility/data/override/spinbox.qml @@ -0,0 +1,10 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +SpinBox { + from: 0 + to: 100 + value: 50 + stepSize: 1 + Accessible.name: "SpinBoxOverride" +} diff --git a/tests/auto/accessibility/data/override/stackview.qml b/tests/auto/accessibility/data/override/stackview.qml new file mode 100644 index 00000000..dfc3e925 --- /dev/null +++ b/tests/auto/accessibility/data/override/stackview.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +StackView { + Accessible.name: "StackViewOverride" +} diff --git a/tests/auto/accessibility/data/override/swipedelegate.qml b/tests/auto/accessibility/data/override/swipedelegate.qml new file mode 100644 index 00000000..9e3f00a9 --- /dev/null +++ b/tests/auto/accessibility/data/override/swipedelegate.qml @@ -0,0 +1,7 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +SwipeDelegate { + text: "SwipeDelegate" + Accessible.name: text + "Override" +} diff --git a/tests/auto/accessibility/data/override/swipeview.qml b/tests/auto/accessibility/data/override/swipeview.qml new file mode 100644 index 00000000..9b3734b2 --- /dev/null +++ b/tests/auto/accessibility/data/override/swipeview.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +SwipeView { + Accessible.name: "SwipeViewOverride" +} diff --git a/tests/auto/accessibility/data/override/switch.qml b/tests/auto/accessibility/data/override/switch.qml new file mode 100644 index 00000000..9162a374 --- /dev/null +++ b/tests/auto/accessibility/data/override/switch.qml @@ -0,0 +1,7 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +Switch { + text: "Switch" + Accessible.name: text + "Override" +} diff --git a/tests/auto/accessibility/data/override/switchdelegate.qml b/tests/auto/accessibility/data/override/switchdelegate.qml new file mode 100644 index 00000000..f1a99c69 --- /dev/null +++ b/tests/auto/accessibility/data/override/switchdelegate.qml @@ -0,0 +1,7 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +SwitchDelegate { + text: "SwitchDelegate" + Accessible.name: text + "Override" +} diff --git a/tests/auto/accessibility/data/override/tabbar.qml b/tests/auto/accessibility/data/override/tabbar.qml new file mode 100644 index 00000000..9e00d017 --- /dev/null +++ b/tests/auto/accessibility/data/override/tabbar.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +TabBar { + Accessible.name: "TabBarOverride" +} diff --git a/tests/auto/accessibility/data/override/tabbutton.qml b/tests/auto/accessibility/data/override/tabbutton.qml new file mode 100644 index 00000000..2b9f83d1 --- /dev/null +++ b/tests/auto/accessibility/data/override/tabbutton.qml @@ -0,0 +1,7 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +TabButton { + text: "TabButton" + Accessible.name: text + "Override" +} diff --git a/tests/auto/accessibility/data/override/textarea.qml b/tests/auto/accessibility/data/override/textarea.qml new file mode 100644 index 00000000..00ebdb59 --- /dev/null +++ b/tests/auto/accessibility/data/override/textarea.qml @@ -0,0 +1,7 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +TextArea { + text: "TextArea" + Accessible.name: text + "Override" +} diff --git a/tests/auto/accessibility/data/override/textfield.qml b/tests/auto/accessibility/data/override/textfield.qml new file mode 100644 index 00000000..6f5bb469 --- /dev/null +++ b/tests/auto/accessibility/data/override/textfield.qml @@ -0,0 +1,7 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +TextField { + text: "TextField" + Accessible.name: text + "Override" +} diff --git a/tests/auto/accessibility/data/override/toolbar.qml b/tests/auto/accessibility/data/override/toolbar.qml new file mode 100644 index 00000000..170c8ce5 --- /dev/null +++ b/tests/auto/accessibility/data/override/toolbar.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +ToolBar { + Accessible.name: "ToolBarOverride" +} diff --git a/tests/auto/accessibility/data/override/toolbutton.qml b/tests/auto/accessibility/data/override/toolbutton.qml new file mode 100644 index 00000000..12b634e7 --- /dev/null +++ b/tests/auto/accessibility/data/override/toolbutton.qml @@ -0,0 +1,7 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +ToolButton { + text: "ToolButton" + Accessible.name: text + "Override" +} diff --git a/tests/auto/accessibility/data/override/tooltip.qml b/tests/auto/accessibility/data/override/tooltip.qml new file mode 100644 index 00000000..92ff8396 --- /dev/null +++ b/tests/auto/accessibility/data/override/tooltip.qml @@ -0,0 +1,7 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +ToolTip { + text: "ToolTip" + Accessible.name: text + "Override" +} diff --git a/tests/auto/accessibility/data/override/tumbler.qml b/tests/auto/accessibility/data/override/tumbler.qml new file mode 100644 index 00000000..ac1221d7 --- /dev/null +++ b/tests/auto/accessibility/data/override/tumbler.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +Tumbler { + Accessible.name: "TumblerOverride" +} diff --git a/tests/auto/accessibility/data/override/weeknumbercolumn-2.qml b/tests/auto/accessibility/data/override/weeknumbercolumn-2.qml new file mode 100644 index 00000000..2c5b836b --- /dev/null +++ b/tests/auto/accessibility/data/override/weeknumbercolumn-2.qml @@ -0,0 +1,4 @@ +import QtQuick 2.12 +import Qt.labs.calendar 1.0 + +WeekNumberColumn { } diff --git a/tests/auto/accessibility/data/override/weeknumbercolumn.qml b/tests/auto/accessibility/data/override/weeknumbercolumn.qml new file mode 100644 index 00000000..7e182917 --- /dev/null +++ b/tests/auto/accessibility/data/override/weeknumbercolumn.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import Qt.labs.calendar 1.0 + +WeekNumberColumn { + Accessible.name: "WeekNumberColumnOverride" +} diff --git a/tests/auto/accessibility/tst_accessibility.cpp b/tests/auto/accessibility/tst_accessibility.cpp index 0c2f2e74..6e5a37df 100644 --- a/tests/auto/accessibility/tst_accessibility.cpp +++ b/tests/auto/accessibility/tst_accessibility.cpp @@ -57,13 +57,47 @@ private slots: void a11y_data(); void a11y(); + void override_data(); + void override(); + private: QQmlEngine engine; }; +#if QT_CONFIG(accessibility) +static QPlatformAccessibility *platformAccessibility() +{ + QPlatformIntegration *pfIntegration = QGuiApplicationPrivate::platformIntegration(); + return pfIntegration ? pfIntegration->accessibility() : nullptr; +} +#endif + +QString adjustFileBaseName(const QString &fileBaseName) +{ +#if !QT_CONFIG(accessibility) + if (fileBaseName == QLatin1Literal("dayofweekrow") + || fileBaseName == QLatin1Literal("monthgrid") + || fileBaseName == QLatin1Literal("weeknumbercolumn")) + return fileBaseName += QLatin1Literal("-2"); +#else + return fileBaseName; +#endif +} + +QQuickItem *findItem(QObject *object) +{ + QQuickItem *item = qobject_cast<QQuickItem *>(object); + if (!item) { + QQuickPopup *popup = qobject_cast<QQuickPopup *>(object); + if (popup) + item = popup->popupItem(); + } + return item; +} + void tst_accessibility::a11y_data() { - QTest::addColumn<QString>("name"); + QTest::addColumn<QString>("fileBaseName"); QTest::addColumn<QAccessible::Role>("role"); QTest::addColumn<QString>("text"); @@ -116,61 +150,135 @@ void tst_accessibility::a11y_data() QTest::newRow("WeekNumberColumn") << "weeknumbercolumn" << QAccessible::NoRole << "WeekNumberColumn"; } +void tst_accessibility::a11y() +{ + QFETCH(QString, fileBaseName); + QFETCH(QAccessible::Role, role); + QFETCH(QString, text); + + QQmlComponent component(&engine); + component.loadUrl(testFileUrl("defaults/" + adjustFileBaseName(fileBaseName) + ".qml")); + + QScopedPointer<QObject> object(component.create()); + QVERIFY2(!object.isNull(), qPrintable(component.errorString())); + + QQuickItem *item = findItem(object.data()); + QVERIFY(item); + #if QT_CONFIG(accessibility) -static QPlatformAccessibility *platformAccessibility() + QQuickAccessibleAttached *attached = QQuickAccessibleAttached::attachedProperties(item); + if (fileBaseName != QLatin1String("dayofweekrow") + && fileBaseName != QLatin1String("monthgrid") + && fileBaseName != QLatin1String("weeknumbercolumn")) { + if (QAccessible::isActive()) { + QVERIFY(attached); + } else { + QVERIFY(!attached); + QPlatformAccessibility *accessibility = platformAccessibility(); + if (!accessibility) + QSKIP("No QPlatformAccessibility available."); + accessibility->setActive(true); + attached = QQuickAccessibleAttached::attachedProperties(item); + } + } + QVERIFY(attached); + QCOMPARE(attached->role(), role); + QCOMPARE(attached->name(), text); +#else + Q_UNUSED(role) + Q_UNUSED(text) +#endif +} + +void tst_accessibility::override_data() { - QPlatformIntegration *pfIntegration = QGuiApplicationPrivate::platformIntegration(); - return pfIntegration ? pfIntegration->accessibility() : nullptr; + QTest::addColumn<QAccessible::Role>("role"); + + QTest::newRow("AbstractButton") << QAccessible::Button; + QTest::newRow("BusyIndicator") << QAccessible::Indicator; + QTest::newRow("Button") << QAccessible::Button; + QTest::newRow("CheckBox") << QAccessible::CheckBox; + QTest::newRow("CheckDelegate") << QAccessible::CheckBox; + QTest::newRow("ComboBox") << QAccessible::ComboBox; + QTest::newRow("Container") << QAccessible::NoRole; + QTest::newRow("Control") << QAccessible::NoRole; + QTest::newRow("Dial") << QAccessible::Dial; + QTest::newRow("Dialog") << QAccessible::Dialog; + QTest::newRow("Drawer") << QAccessible::Dialog; + QTest::newRow("Frame") << QAccessible::Border; + QTest::newRow("GroupBox") << QAccessible::Grouping; + QTest::newRow("ItemDelegate") << QAccessible::ListItem; + QTest::newRow("Label") << QAccessible::StaticText; + QTest::newRow("Menu") << QAccessible::PopupMenu; + QTest::newRow("MenuItem") << QAccessible::MenuItem; + QTest::newRow("Page") << QAccessible::PageTab; + QTest::newRow("PageIndicator") << QAccessible::Indicator; + QTest::newRow("Pane") << QAccessible::Pane; + QTest::newRow("Popup") << QAccessible::Dialog; + QTest::newRow("ProgressBar") << QAccessible::ProgressBar; + QTest::newRow("RadioButton") << QAccessible::RadioButton; + QTest::newRow("RadioDelegate") << QAccessible::RadioButton; + QTest::newRow("RangeSlider") << QAccessible::Slider; + QTest::newRow("RoundButton") << QAccessible::Button; + QTest::newRow("ScrollBar") << QAccessible::ScrollBar; + QTest::newRow("ScrollIndicator") << QAccessible::Indicator; + QTest::newRow("Slider") << QAccessible::Slider; + QTest::newRow("SpinBox") << QAccessible::SpinBox; + QTest::newRow("StackView") << QAccessible::LayeredPane; + QTest::newRow("SwipeDelegate") << QAccessible::ListItem; + QTest::newRow("SwipeView") << QAccessible::PageTabList; + QTest::newRow("Switch") << QAccessible::CheckBox; + QTest::newRow("SwitchDelegate") << QAccessible::ListItem; + QTest::newRow("TabBar") << QAccessible::PageTabList; + QTest::newRow("TabButton") << QAccessible::PageTab; + QTest::newRow("TextArea") << QAccessible::EditableText; + QTest::newRow("TextField") << QAccessible::EditableText; + QTest::newRow("ToolBar") << QAccessible::ToolBar; + QTest::newRow("ToolButton") << QAccessible::Button; + QTest::newRow("ToolTip") << QAccessible::ToolTip; + QTest::newRow("Tumbler") << QAccessible::NoRole; + + QTest::newRow("DayOfWeekRow") << QAccessible::NoRole; + QTest::newRow("MonthGrid") << QAccessible::NoRole; + QTest::newRow("WeekNumberColumn") << QAccessible::NoRole; } -#endif -void tst_accessibility::a11y() +void tst_accessibility::override() { - QFETCH(QString, name); QFETCH(QAccessible::Role, role); - QFETCH(QString, text); - QString fn = name; -#if !QT_CONFIG(accessibility) - if (name == QLatin1String("dayofweekrow") - || name == QLatin1String("monthgrid") - || name == QLatin1String("weeknumbercolumn")) - fn += QLatin1String("-2"); -#endif + const QString name = QTest::currentDataTag(); + const QString fileBaseName = name.toLower(); QQmlComponent component(&engine); - component.loadUrl(testFileUrl(fn + ".qml")); + component.loadUrl(testFileUrl("override/" + adjustFileBaseName(fileBaseName) + ".qml")); QScopedPointer<QObject> object(component.create()); QVERIFY2(!object.isNull(), qPrintable(component.errorString())); - QQuickItem *item = qobject_cast<QQuickItem *>(object.data()); - if (!item) { - QQuickPopup *popup = qobject_cast<QQuickPopup *>(object.data()); - if (popup) - item = popup->popupItem(); - } + QQuickItem *item = findItem(object.data()); QVERIFY(item); #if QT_CONFIG(accessibility) - QQuickAccessibleAttached *acc = QQuickAccessibleAttached::attachedProperties(item); - if (name != QLatin1String("dayofweekrow") - && name != QLatin1String("monthgrid") - && name != QLatin1String("weeknumbercolumn")) { + QQuickAccessibleAttached *attached = QQuickAccessibleAttached::attachedProperties(item); + if (fileBaseName != QLatin1String("dayofweekrow") + && fileBaseName != QLatin1String("monthgrid") + && fileBaseName != QLatin1String("weeknumbercolumn")) { if (QAccessible::isActive()) { - QVERIFY(acc); + QVERIFY(attached); } else { - QVERIFY(!acc); QPlatformAccessibility *accessibility = platformAccessibility(); if (!accessibility) QSKIP("No QPlatformAccessibility available."); accessibility->setActive(true); - acc = QQuickAccessibleAttached::attachedProperties(item); + if (!attached) + attached = QQuickAccessibleAttached::attachedProperties(item); } } - QVERIFY(acc); - QCOMPARE(acc->role(), role); - QCOMPARE(acc->name(), text); + + QVERIFY(attached); + QCOMPARE(attached->role(), role); + QCOMPARE(attached->name(), name + "Override"); #else Q_UNUSED(role) Q_UNUSED(text) |