From 463898f0765b83f6c391f6802a0ee06796f9f6d2 Mon Sep 17 00:00:00 2001 From: Mitch Curtis Date: Tue, 5 Nov 2019 12:51:02 +0100 Subject: 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 --- src/quicktemplates2/qquickabstractbutton.cpp | 4 +- src/quicktemplates2/qquickcombobox.cpp | 6 +- src/quicktemplates2/qquickcontrol.cpp | 8 +- src/quicktemplates2/qquickcontrol_p.h | 2 +- src/quicktemplates2/qquickdialog.cpp | 3 +- src/quicktemplates2/qquickgroupbox.cpp | 4 +- src/quicktemplates2/qquicklabel.cpp | 17 +- src/quicktemplates2/qquicklabel_p_p.h | 1 + src/quicktemplates2/qquickpage.cpp | 4 +- src/quicktemplates2/qquickpopup.cpp | 4 +- src/quicktemplates2/qquickpopup_p.h | 2 +- src/quicktemplates2/qquickpopupitem.cpp | 25 +++ src/quicktemplates2/qquicktooltip.cpp | 4 +- tests/auto/accessibility/BLACKLIST | 2 + tests/auto/accessibility/data/abstractbutton.qml | 6 - tests/auto/accessibility/data/busyindicator.qml | 4 - tests/auto/accessibility/data/button.qml | 6 - tests/auto/accessibility/data/checkbox.qml | 6 - tests/auto/accessibility/data/checkdelegate.qml | 6 - tests/auto/accessibility/data/combobox.qml | 6 - tests/auto/accessibility/data/container.qml | 4 - tests/auto/accessibility/data/control.qml | 4 - tests/auto/accessibility/data/dayofweekrow-2.qml | 4 - tests/auto/accessibility/data/dayofweekrow.qml | 6 - .../accessibility/data/defaults/abstractbutton.qml | 6 + .../accessibility/data/defaults/busyindicator.qml | 4 + tests/auto/accessibility/data/defaults/button.qml | 6 + .../auto/accessibility/data/defaults/checkbox.qml | 6 + .../accessibility/data/defaults/checkdelegate.qml | 6 + .../auto/accessibility/data/defaults/combobox.qml | 6 + .../auto/accessibility/data/defaults/container.qml | 4 + tests/auto/accessibility/data/defaults/control.qml | 4 + .../accessibility/data/defaults/dayofweekrow-2.qml | 4 + .../accessibility/data/defaults/dayofweekrow.qml | 6 + tests/auto/accessibility/data/defaults/dial.qml | 4 + tests/auto/accessibility/data/defaults/dialog.qml | 6 + tests/auto/accessibility/data/defaults/drawer.qml | 4 + tests/auto/accessibility/data/defaults/frame.qml | 4 + .../auto/accessibility/data/defaults/groupbox.qml | 6 + .../accessibility/data/defaults/itemdelegate.qml | 6 + tests/auto/accessibility/data/defaults/label.qml | 6 + tests/auto/accessibility/data/defaults/menu.qml | 4 + .../auto/accessibility/data/defaults/menuitem.qml | 6 + .../accessibility/data/defaults/monthgrid-2.qml | 6 + .../auto/accessibility/data/defaults/monthgrid.qml | 7 + tests/auto/accessibility/data/defaults/page.qml | 6 + .../accessibility/data/defaults/pageindicator.qml | 4 + tests/auto/accessibility/data/defaults/pane.qml | 4 + tests/auto/accessibility/data/defaults/popup.qml | 4 + .../accessibility/data/defaults/progressbar.qml | 8 + .../accessibility/data/defaults/radiobutton.qml | 6 + .../accessibility/data/defaults/radiodelegate.qml | 6 + .../accessibility/data/defaults/rangeslider.qml | 11 ++ .../accessibility/data/defaults/roundbutton.qml | 6 + .../auto/accessibility/data/defaults/scrollbar.qml | 4 + .../data/defaults/scrollindicator.qml | 4 + tests/auto/accessibility/data/defaults/slider.qml | 10 ++ tests/auto/accessibility/data/defaults/spinbox.qml | 9 ++ .../auto/accessibility/data/defaults/stackview.qml | 4 + .../accessibility/data/defaults/swipedelegate.qml | 6 + .../auto/accessibility/data/defaults/swipeview.qml | 4 + tests/auto/accessibility/data/defaults/switch.qml | 6 + .../accessibility/data/defaults/switchdelegate.qml | 6 + tests/auto/accessibility/data/defaults/tabbar.qml | 4 + .../auto/accessibility/data/defaults/tabbutton.qml | 6 + .../auto/accessibility/data/defaults/textarea.qml | 6 + .../auto/accessibility/data/defaults/textfield.qml | 6 + tests/auto/accessibility/data/defaults/toolbar.qml | 4 + .../accessibility/data/defaults/toolbutton.qml | 6 + tests/auto/accessibility/data/defaults/tooltip.qml | 6 + tests/auto/accessibility/data/defaults/tumbler.qml | 4 + .../data/defaults/weeknumbercolumn-2.qml | 4 + .../data/defaults/weeknumbercolumn.qml | 6 + tests/auto/accessibility/data/dial.qml | 4 - tests/auto/accessibility/data/dialog.qml | 6 - tests/auto/accessibility/data/drawer.qml | 4 - tests/auto/accessibility/data/frame.qml | 4 - tests/auto/accessibility/data/groupbox.qml | 6 - tests/auto/accessibility/data/itemdelegate.qml | 6 - tests/auto/accessibility/data/label.qml | 6 - tests/auto/accessibility/data/menu.qml | 4 - tests/auto/accessibility/data/menuitem.qml | 6 - tests/auto/accessibility/data/monthgrid-2.qml | 6 - tests/auto/accessibility/data/monthgrid.qml | 7 - .../accessibility/data/override/abstractbutton.qml | 7 + .../accessibility/data/override/busyindicator.qml | 6 + tests/auto/accessibility/data/override/button.qml | 7 + .../auto/accessibility/data/override/checkbox.qml | 7 + .../accessibility/data/override/checkdelegate.qml | 7 + .../auto/accessibility/data/override/combobox.qml | 7 + .../auto/accessibility/data/override/container.qml | 6 + tests/auto/accessibility/data/override/control.qml | 6 + .../accessibility/data/override/dayofweekrow-2.qml | 6 + .../accessibility/data/override/dayofweekrow.qml | 6 + tests/auto/accessibility/data/override/dial.qml | 6 + tests/auto/accessibility/data/override/dialog.qml | 7 + tests/auto/accessibility/data/override/drawer.qml | 6 + tests/auto/accessibility/data/override/frame.qml | 6 + .../auto/accessibility/data/override/groupbox.qml | 7 + .../accessibility/data/override/itemdelegate.qml | 7 + tests/auto/accessibility/data/override/label.qml | 7 + tests/auto/accessibility/data/override/menu.qml | 6 + .../auto/accessibility/data/override/menuitem.qml | 7 + .../accessibility/data/override/monthgrid-2.qml | 7 + .../auto/accessibility/data/override/monthgrid.qml | 7 + tests/auto/accessibility/data/override/page.qml | 7 + .../accessibility/data/override/pageindicator.qml | 6 + tests/auto/accessibility/data/override/pane.qml | 6 + tests/auto/accessibility/data/override/popup.qml | 6 + .../accessibility/data/override/progressbar.qml | 10 ++ .../accessibility/data/override/radiobutton.qml | 7 + .../accessibility/data/override/radiodelegate.qml | 7 + .../accessibility/data/override/rangeslider.qml | 13 ++ .../accessibility/data/override/roundbutton.qml | 7 + .../auto/accessibility/data/override/scrollbar.qml | 6 + .../data/override/scrollindicator.qml | 6 + tests/auto/accessibility/data/override/slider.qml | 11 ++ tests/auto/accessibility/data/override/spinbox.qml | 10 ++ .../auto/accessibility/data/override/stackview.qml | 6 + .../accessibility/data/override/swipedelegate.qml | 7 + .../auto/accessibility/data/override/swipeview.qml | 6 + tests/auto/accessibility/data/override/switch.qml | 7 + .../accessibility/data/override/switchdelegate.qml | 7 + tests/auto/accessibility/data/override/tabbar.qml | 6 + .../auto/accessibility/data/override/tabbutton.qml | 7 + .../auto/accessibility/data/override/textarea.qml | 7 + .../auto/accessibility/data/override/textfield.qml | 7 + tests/auto/accessibility/data/override/toolbar.qml | 6 + .../accessibility/data/override/toolbutton.qml | 7 + tests/auto/accessibility/data/override/tooltip.qml | 7 + tests/auto/accessibility/data/override/tumbler.qml | 6 + .../data/override/weeknumbercolumn-2.qml | 4 + .../data/override/weeknumbercolumn.qml | 6 + tests/auto/accessibility/data/page.qml | 6 - tests/auto/accessibility/data/pageindicator.qml | 4 - tests/auto/accessibility/data/pane.qml | 4 - tests/auto/accessibility/data/popup.qml | 4 - tests/auto/accessibility/data/progressbar.qml | 8 - tests/auto/accessibility/data/radiobutton.qml | 6 - tests/auto/accessibility/data/radiodelegate.qml | 6 - tests/auto/accessibility/data/rangeslider.qml | 11 -- tests/auto/accessibility/data/roundbutton.qml | 6 - tests/auto/accessibility/data/scrollbar.qml | 4 - tests/auto/accessibility/data/scrollindicator.qml | 4 - tests/auto/accessibility/data/slider.qml | 10 -- tests/auto/accessibility/data/spinbox.qml | 9 -- tests/auto/accessibility/data/stackview.qml | 4 - tests/auto/accessibility/data/swipedelegate.qml | 6 - tests/auto/accessibility/data/swipeview.qml | 4 - tests/auto/accessibility/data/switch.qml | 6 - tests/auto/accessibility/data/switchdelegate.qml | 6 - tests/auto/accessibility/data/tabbar.qml | 4 - tests/auto/accessibility/data/tabbutton.qml | 6 - tests/auto/accessibility/data/textarea.qml | 6 - tests/auto/accessibility/data/textfield.qml | 6 - tests/auto/accessibility/data/toolbar.qml | 4 - tests/auto/accessibility/data/toolbutton.qml | 6 - tests/auto/accessibility/data/tooltip.qml | 6 - tests/auto/accessibility/data/tumbler.qml | 4 - .../auto/accessibility/data/weeknumbercolumn-2.qml | 4 - tests/auto/accessibility/data/weeknumbercolumn.qml | 6 - tests/auto/accessibility/tst_accessibility.cpp | 172 +++++++++++++++++---- 162 files changed, 809 insertions(+), 327 deletions(-) create mode 100644 tests/auto/accessibility/BLACKLIST delete mode 100644 tests/auto/accessibility/data/abstractbutton.qml delete mode 100644 tests/auto/accessibility/data/busyindicator.qml delete mode 100644 tests/auto/accessibility/data/button.qml delete mode 100644 tests/auto/accessibility/data/checkbox.qml delete mode 100644 tests/auto/accessibility/data/checkdelegate.qml delete mode 100644 tests/auto/accessibility/data/combobox.qml delete mode 100644 tests/auto/accessibility/data/container.qml delete mode 100644 tests/auto/accessibility/data/control.qml delete mode 100644 tests/auto/accessibility/data/dayofweekrow-2.qml delete mode 100644 tests/auto/accessibility/data/dayofweekrow.qml create mode 100644 tests/auto/accessibility/data/defaults/abstractbutton.qml create mode 100644 tests/auto/accessibility/data/defaults/busyindicator.qml create mode 100644 tests/auto/accessibility/data/defaults/button.qml create mode 100644 tests/auto/accessibility/data/defaults/checkbox.qml create mode 100644 tests/auto/accessibility/data/defaults/checkdelegate.qml create mode 100644 tests/auto/accessibility/data/defaults/combobox.qml create mode 100644 tests/auto/accessibility/data/defaults/container.qml create mode 100644 tests/auto/accessibility/data/defaults/control.qml create mode 100644 tests/auto/accessibility/data/defaults/dayofweekrow-2.qml create mode 100644 tests/auto/accessibility/data/defaults/dayofweekrow.qml create mode 100644 tests/auto/accessibility/data/defaults/dial.qml create mode 100644 tests/auto/accessibility/data/defaults/dialog.qml create mode 100644 tests/auto/accessibility/data/defaults/drawer.qml create mode 100644 tests/auto/accessibility/data/defaults/frame.qml create mode 100644 tests/auto/accessibility/data/defaults/groupbox.qml create mode 100644 tests/auto/accessibility/data/defaults/itemdelegate.qml create mode 100644 tests/auto/accessibility/data/defaults/label.qml create mode 100644 tests/auto/accessibility/data/defaults/menu.qml create mode 100644 tests/auto/accessibility/data/defaults/menuitem.qml create mode 100644 tests/auto/accessibility/data/defaults/monthgrid-2.qml create mode 100644 tests/auto/accessibility/data/defaults/monthgrid.qml create mode 100644 tests/auto/accessibility/data/defaults/page.qml create mode 100644 tests/auto/accessibility/data/defaults/pageindicator.qml create mode 100644 tests/auto/accessibility/data/defaults/pane.qml create mode 100644 tests/auto/accessibility/data/defaults/popup.qml create mode 100644 tests/auto/accessibility/data/defaults/progressbar.qml create mode 100644 tests/auto/accessibility/data/defaults/radiobutton.qml create mode 100644 tests/auto/accessibility/data/defaults/radiodelegate.qml create mode 100644 tests/auto/accessibility/data/defaults/rangeslider.qml create mode 100644 tests/auto/accessibility/data/defaults/roundbutton.qml create mode 100644 tests/auto/accessibility/data/defaults/scrollbar.qml create mode 100644 tests/auto/accessibility/data/defaults/scrollindicator.qml create mode 100644 tests/auto/accessibility/data/defaults/slider.qml create mode 100644 tests/auto/accessibility/data/defaults/spinbox.qml create mode 100644 tests/auto/accessibility/data/defaults/stackview.qml create mode 100644 tests/auto/accessibility/data/defaults/swipedelegate.qml create mode 100644 tests/auto/accessibility/data/defaults/swipeview.qml create mode 100644 tests/auto/accessibility/data/defaults/switch.qml create mode 100644 tests/auto/accessibility/data/defaults/switchdelegate.qml create mode 100644 tests/auto/accessibility/data/defaults/tabbar.qml create mode 100644 tests/auto/accessibility/data/defaults/tabbutton.qml create mode 100644 tests/auto/accessibility/data/defaults/textarea.qml create mode 100644 tests/auto/accessibility/data/defaults/textfield.qml create mode 100644 tests/auto/accessibility/data/defaults/toolbar.qml create mode 100644 tests/auto/accessibility/data/defaults/toolbutton.qml create mode 100644 tests/auto/accessibility/data/defaults/tooltip.qml create mode 100644 tests/auto/accessibility/data/defaults/tumbler.qml create mode 100644 tests/auto/accessibility/data/defaults/weeknumbercolumn-2.qml create mode 100644 tests/auto/accessibility/data/defaults/weeknumbercolumn.qml delete mode 100644 tests/auto/accessibility/data/dial.qml delete mode 100644 tests/auto/accessibility/data/dialog.qml delete mode 100644 tests/auto/accessibility/data/drawer.qml delete mode 100644 tests/auto/accessibility/data/frame.qml delete mode 100644 tests/auto/accessibility/data/groupbox.qml delete mode 100644 tests/auto/accessibility/data/itemdelegate.qml delete mode 100644 tests/auto/accessibility/data/label.qml delete mode 100644 tests/auto/accessibility/data/menu.qml delete mode 100644 tests/auto/accessibility/data/menuitem.qml delete mode 100644 tests/auto/accessibility/data/monthgrid-2.qml delete mode 100644 tests/auto/accessibility/data/monthgrid.qml create mode 100644 tests/auto/accessibility/data/override/abstractbutton.qml create mode 100644 tests/auto/accessibility/data/override/busyindicator.qml create mode 100644 tests/auto/accessibility/data/override/button.qml create mode 100644 tests/auto/accessibility/data/override/checkbox.qml create mode 100644 tests/auto/accessibility/data/override/checkdelegate.qml create mode 100644 tests/auto/accessibility/data/override/combobox.qml create mode 100644 tests/auto/accessibility/data/override/container.qml create mode 100644 tests/auto/accessibility/data/override/control.qml create mode 100644 tests/auto/accessibility/data/override/dayofweekrow-2.qml create mode 100644 tests/auto/accessibility/data/override/dayofweekrow.qml create mode 100644 tests/auto/accessibility/data/override/dial.qml create mode 100644 tests/auto/accessibility/data/override/dialog.qml create mode 100644 tests/auto/accessibility/data/override/drawer.qml create mode 100644 tests/auto/accessibility/data/override/frame.qml create mode 100644 tests/auto/accessibility/data/override/groupbox.qml create mode 100644 tests/auto/accessibility/data/override/itemdelegate.qml create mode 100644 tests/auto/accessibility/data/override/label.qml create mode 100644 tests/auto/accessibility/data/override/menu.qml create mode 100644 tests/auto/accessibility/data/override/menuitem.qml create mode 100644 tests/auto/accessibility/data/override/monthgrid-2.qml create mode 100644 tests/auto/accessibility/data/override/monthgrid.qml create mode 100644 tests/auto/accessibility/data/override/page.qml create mode 100644 tests/auto/accessibility/data/override/pageindicator.qml create mode 100644 tests/auto/accessibility/data/override/pane.qml create mode 100644 tests/auto/accessibility/data/override/popup.qml create mode 100644 tests/auto/accessibility/data/override/progressbar.qml create mode 100644 tests/auto/accessibility/data/override/radiobutton.qml create mode 100644 tests/auto/accessibility/data/override/radiodelegate.qml create mode 100644 tests/auto/accessibility/data/override/rangeslider.qml create mode 100644 tests/auto/accessibility/data/override/roundbutton.qml create mode 100644 tests/auto/accessibility/data/override/scrollbar.qml create mode 100644 tests/auto/accessibility/data/override/scrollindicator.qml create mode 100644 tests/auto/accessibility/data/override/slider.qml create mode 100644 tests/auto/accessibility/data/override/spinbox.qml create mode 100644 tests/auto/accessibility/data/override/stackview.qml create mode 100644 tests/auto/accessibility/data/override/swipedelegate.qml create mode 100644 tests/auto/accessibility/data/override/swipeview.qml create mode 100644 tests/auto/accessibility/data/override/switch.qml create mode 100644 tests/auto/accessibility/data/override/switchdelegate.qml create mode 100644 tests/auto/accessibility/data/override/tabbar.qml create mode 100644 tests/auto/accessibility/data/override/tabbutton.qml create mode 100644 tests/auto/accessibility/data/override/textarea.qml create mode 100644 tests/auto/accessibility/data/override/textfield.qml create mode 100644 tests/auto/accessibility/data/override/toolbar.qml create mode 100644 tests/auto/accessibility/data/override/toolbutton.qml create mode 100644 tests/auto/accessibility/data/override/tooltip.qml create mode 100644 tests/auto/accessibility/data/override/tumbler.qml create mode 100644 tests/auto/accessibility/data/override/weeknumbercolumn-2.qml create mode 100644 tests/auto/accessibility/data/override/weeknumbercolumn.qml delete mode 100644 tests/auto/accessibility/data/page.qml delete mode 100644 tests/auto/accessibility/data/pageindicator.qml delete mode 100644 tests/auto/accessibility/data/pane.qml delete mode 100644 tests/auto/accessibility/data/popup.qml delete mode 100644 tests/auto/accessibility/data/progressbar.qml delete mode 100644 tests/auto/accessibility/data/radiobutton.qml delete mode 100644 tests/auto/accessibility/data/radiodelegate.qml delete mode 100644 tests/auto/accessibility/data/rangeslider.qml delete mode 100644 tests/auto/accessibility/data/roundbutton.qml delete mode 100644 tests/auto/accessibility/data/scrollbar.qml delete mode 100644 tests/auto/accessibility/data/scrollindicator.qml delete mode 100644 tests/auto/accessibility/data/slider.qml delete mode 100644 tests/auto/accessibility/data/spinbox.qml delete mode 100644 tests/auto/accessibility/data/stackview.qml delete mode 100644 tests/auto/accessibility/data/swipedelegate.qml delete mode 100644 tests/auto/accessibility/data/swipeview.qml delete mode 100644 tests/auto/accessibility/data/switch.qml delete mode 100644 tests/auto/accessibility/data/switchdelegate.qml delete mode 100644 tests/auto/accessibility/data/tabbar.qml delete mode 100644 tests/auto/accessibility/data/tabbutton.qml delete mode 100644 tests/auto/accessibility/data/textarea.qml delete mode 100644 tests/auto/accessibility/data/textfield.qml delete mode 100644 tests/auto/accessibility/data/toolbar.qml delete mode 100644 tests/auto/accessibility/data/toolbutton.qml delete mode 100644 tests/auto/accessibility/data/tooltip.qml delete mode 100644 tests/auto/accessibility/data/tumbler.qml delete mode 100644 tests/auto/accessibility/data/weeknumbercolumn-2.qml delete mode 100644 tests/auto/accessibility/data/weeknumbercolumn.qml 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(qmlAttachedPropertiesObject(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( + qmlAttachedPropertiesObject(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 #include +#if QT_CONFIG(accessibility) +#include +#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/abstractbutton.qml deleted file mode 100644 index b0922176..00000000 --- a/tests/auto/accessibility/data/abstractbutton.qml +++ /dev/null @@ -1,6 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -AbstractButton { - text: "AbstractButton" -} diff --git a/tests/auto/accessibility/data/busyindicator.qml b/tests/auto/accessibility/data/busyindicator.qml deleted file mode 100644 index e1c33765..00000000 --- a/tests/auto/accessibility/data/busyindicator.qml +++ /dev/null @@ -1,4 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -BusyIndicator { } diff --git a/tests/auto/accessibility/data/button.qml b/tests/auto/accessibility/data/button.qml deleted file mode 100644 index 600c05da..00000000 --- a/tests/auto/accessibility/data/button.qml +++ /dev/null @@ -1,6 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -Button { - text: "Button" -} diff --git a/tests/auto/accessibility/data/checkbox.qml b/tests/auto/accessibility/data/checkbox.qml deleted file mode 100644 index f86a9a27..00000000 --- a/tests/auto/accessibility/data/checkbox.qml +++ /dev/null @@ -1,6 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -CheckBox { - text: "CheckBox" -} diff --git a/tests/auto/accessibility/data/checkdelegate.qml b/tests/auto/accessibility/data/checkdelegate.qml deleted file mode 100644 index 2750052f..00000000 --- a/tests/auto/accessibility/data/checkdelegate.qml +++ /dev/null @@ -1,6 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -CheckDelegate { - text: "CheckDelegate" -} diff --git a/tests/auto/accessibility/data/combobox.qml b/tests/auto/accessibility/data/combobox.qml deleted file mode 100644 index ec4e87ef..00000000 --- a/tests/auto/accessibility/data/combobox.qml +++ /dev/null @@ -1,6 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -ComboBox { - model: ["ComboBox"] -} diff --git a/tests/auto/accessibility/data/container.qml b/tests/auto/accessibility/data/container.qml deleted file mode 100644 index b8d57eea..00000000 --- a/tests/auto/accessibility/data/container.qml +++ /dev/null @@ -1,4 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -Container { } diff --git a/tests/auto/accessibility/data/control.qml b/tests/auto/accessibility/data/control.qml deleted file mode 100644 index dac5f935..00000000 --- a/tests/auto/accessibility/data/control.qml +++ /dev/null @@ -1,4 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -Control { } diff --git a/tests/auto/accessibility/data/dayofweekrow-2.qml b/tests/auto/accessibility/data/dayofweekrow-2.qml deleted file mode 100644 index 96c750cb..00000000 --- a/tests/auto/accessibility/data/dayofweekrow-2.qml +++ /dev/null @@ -1,4 +0,0 @@ -import QtQuick 2.12 -import Qt.labs.calendar 1.0 - -DayOfWeekRow { } diff --git a/tests/auto/accessibility/data/dayofweekrow.qml b/tests/auto/accessibility/data/dayofweekrow.qml deleted file mode 100644 index a2aa44ec..00000000 --- a/tests/auto/accessibility/data/dayofweekrow.qml +++ /dev/null @@ -1,6 +0,0 @@ -import QtQuick 2.12 -import Qt.labs.calendar 1.0 - -DayOfWeekRow { - Accessible.name: "DayOfWeekRow" -} diff --git a/tests/auto/accessibility/data/defaults/abstractbutton.qml b/tests/auto/accessibility/data/defaults/abstractbutton.qml new file mode 100644 index 00000000..b0922176 --- /dev/null +++ b/tests/auto/accessibility/data/defaults/abstractbutton.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +AbstractButton { + text: "AbstractButton" +} diff --git a/tests/auto/accessibility/data/defaults/busyindicator.qml b/tests/auto/accessibility/data/defaults/busyindicator.qml new file mode 100644 index 00000000..e1c33765 --- /dev/null +++ b/tests/auto/accessibility/data/defaults/busyindicator.qml @@ -0,0 +1,4 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +BusyIndicator { } diff --git a/tests/auto/accessibility/data/defaults/button.qml b/tests/auto/accessibility/data/defaults/button.qml new file mode 100644 index 00000000..600c05da --- /dev/null +++ b/tests/auto/accessibility/data/defaults/button.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +Button { + text: "Button" +} diff --git a/tests/auto/accessibility/data/defaults/checkbox.qml b/tests/auto/accessibility/data/defaults/checkbox.qml new file mode 100644 index 00000000..f86a9a27 --- /dev/null +++ b/tests/auto/accessibility/data/defaults/checkbox.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +CheckBox { + text: "CheckBox" +} diff --git a/tests/auto/accessibility/data/defaults/checkdelegate.qml b/tests/auto/accessibility/data/defaults/checkdelegate.qml new file mode 100644 index 00000000..2750052f --- /dev/null +++ b/tests/auto/accessibility/data/defaults/checkdelegate.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +CheckDelegate { + text: "CheckDelegate" +} diff --git a/tests/auto/accessibility/data/defaults/combobox.qml b/tests/auto/accessibility/data/defaults/combobox.qml new file mode 100644 index 00000000..ec4e87ef --- /dev/null +++ b/tests/auto/accessibility/data/defaults/combobox.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +ComboBox { + model: ["ComboBox"] +} diff --git a/tests/auto/accessibility/data/defaults/container.qml b/tests/auto/accessibility/data/defaults/container.qml new file mode 100644 index 00000000..b8d57eea --- /dev/null +++ b/tests/auto/accessibility/data/defaults/container.qml @@ -0,0 +1,4 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +Container { } diff --git a/tests/auto/accessibility/data/defaults/control.qml b/tests/auto/accessibility/data/defaults/control.qml new file mode 100644 index 00000000..dac5f935 --- /dev/null +++ b/tests/auto/accessibility/data/defaults/control.qml @@ -0,0 +1,4 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +Control { } diff --git a/tests/auto/accessibility/data/defaults/dayofweekrow-2.qml b/tests/auto/accessibility/data/defaults/dayofweekrow-2.qml new file mode 100644 index 00000000..96c750cb --- /dev/null +++ b/tests/auto/accessibility/data/defaults/dayofweekrow-2.qml @@ -0,0 +1,4 @@ +import QtQuick 2.12 +import Qt.labs.calendar 1.0 + +DayOfWeekRow { } diff --git a/tests/auto/accessibility/data/defaults/dayofweekrow.qml b/tests/auto/accessibility/data/defaults/dayofweekrow.qml new file mode 100644 index 00000000..a2aa44ec --- /dev/null +++ b/tests/auto/accessibility/data/defaults/dayofweekrow.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import Qt.labs.calendar 1.0 + +DayOfWeekRow { + Accessible.name: "DayOfWeekRow" +} diff --git a/tests/auto/accessibility/data/defaults/dial.qml b/tests/auto/accessibility/data/defaults/dial.qml new file mode 100644 index 00000000..9a471548 --- /dev/null +++ b/tests/auto/accessibility/data/defaults/dial.qml @@ -0,0 +1,4 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +Dial { } diff --git a/tests/auto/accessibility/data/defaults/dialog.qml b/tests/auto/accessibility/data/defaults/dialog.qml new file mode 100644 index 00000000..20317a31 --- /dev/null +++ b/tests/auto/accessibility/data/defaults/dialog.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +Dialog { + title: "Dialog" +} diff --git a/tests/auto/accessibility/data/defaults/drawer.qml b/tests/auto/accessibility/data/defaults/drawer.qml new file mode 100644 index 00000000..9b0db5fa --- /dev/null +++ b/tests/auto/accessibility/data/defaults/drawer.qml @@ -0,0 +1,4 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +Drawer { } diff --git a/tests/auto/accessibility/data/defaults/frame.qml b/tests/auto/accessibility/data/defaults/frame.qml new file mode 100644 index 00000000..02e45a78 --- /dev/null +++ b/tests/auto/accessibility/data/defaults/frame.qml @@ -0,0 +1,4 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +Frame { } diff --git a/tests/auto/accessibility/data/defaults/groupbox.qml b/tests/auto/accessibility/data/defaults/groupbox.qml new file mode 100644 index 00000000..0fa8cff5 --- /dev/null +++ b/tests/auto/accessibility/data/defaults/groupbox.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +GroupBox { + title: "GroupBox" +} diff --git a/tests/auto/accessibility/data/defaults/itemdelegate.qml b/tests/auto/accessibility/data/defaults/itemdelegate.qml new file mode 100644 index 00000000..52831648 --- /dev/null +++ b/tests/auto/accessibility/data/defaults/itemdelegate.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +ItemDelegate { + text: "ItemDelegate" +} diff --git a/tests/auto/accessibility/data/defaults/label.qml b/tests/auto/accessibility/data/defaults/label.qml new file mode 100644 index 00000000..6d7466bc --- /dev/null +++ b/tests/auto/accessibility/data/defaults/label.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +Label { + text: "Label" +} diff --git a/tests/auto/accessibility/data/defaults/menu.qml b/tests/auto/accessibility/data/defaults/menu.qml new file mode 100644 index 00000000..126914d1 --- /dev/null +++ b/tests/auto/accessibility/data/defaults/menu.qml @@ -0,0 +1,4 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +Menu { } diff --git a/tests/auto/accessibility/data/defaults/menuitem.qml b/tests/auto/accessibility/data/defaults/menuitem.qml new file mode 100644 index 00000000..97fd478f --- /dev/null +++ b/tests/auto/accessibility/data/defaults/menuitem.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +MenuItem { + text: "MenuItem" +} diff --git a/tests/auto/accessibility/data/defaults/monthgrid-2.qml b/tests/auto/accessibility/data/defaults/monthgrid-2.qml new file mode 100644 index 00000000..6368d090 --- /dev/null +++ b/tests/auto/accessibility/data/defaults/monthgrid-2.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import Qt.labs.calendar 1.0 + +MonthGrid { + title: "MonthGrid" +} diff --git a/tests/auto/accessibility/data/defaults/monthgrid.qml b/tests/auto/accessibility/data/defaults/monthgrid.qml new file mode 100644 index 00000000..03de2499 --- /dev/null +++ b/tests/auto/accessibility/data/defaults/monthgrid.qml @@ -0,0 +1,7 @@ +import QtQuick 2.12 +import Qt.labs.calendar 1.0 + +MonthGrid { + title: "MonthGrid" + Accessible.name: title +} diff --git a/tests/auto/accessibility/data/defaults/page.qml b/tests/auto/accessibility/data/defaults/page.qml new file mode 100644 index 00000000..84036878 --- /dev/null +++ b/tests/auto/accessibility/data/defaults/page.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +Page { + title: "Page" +} diff --git a/tests/auto/accessibility/data/defaults/pageindicator.qml b/tests/auto/accessibility/data/defaults/pageindicator.qml new file mode 100644 index 00000000..30184167 --- /dev/null +++ b/tests/auto/accessibility/data/defaults/pageindicator.qml @@ -0,0 +1,4 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +PageIndicator { } diff --git a/tests/auto/accessibility/data/defaults/pane.qml b/tests/auto/accessibility/data/defaults/pane.qml new file mode 100644 index 00000000..bde4fad5 --- /dev/null +++ b/tests/auto/accessibility/data/defaults/pane.qml @@ -0,0 +1,4 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +Pane { } diff --git a/tests/auto/accessibility/data/defaults/popup.qml b/tests/auto/accessibility/data/defaults/popup.qml new file mode 100644 index 00000000..907d0c55 --- /dev/null +++ b/tests/auto/accessibility/data/defaults/popup.qml @@ -0,0 +1,4 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +Popup { } diff --git a/tests/auto/accessibility/data/defaults/progressbar.qml b/tests/auto/accessibility/data/defaults/progressbar.qml new file mode 100644 index 00000000..74b2cb84 --- /dev/null +++ b/tests/auto/accessibility/data/defaults/progressbar.qml @@ -0,0 +1,8 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +ProgressBar { + from: 0 + to: 100 + value: 50 +} diff --git a/tests/auto/accessibility/data/defaults/radiobutton.qml b/tests/auto/accessibility/data/defaults/radiobutton.qml new file mode 100644 index 00000000..1b046d3e --- /dev/null +++ b/tests/auto/accessibility/data/defaults/radiobutton.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +RadioButton { + text: "RadioButton" +} diff --git a/tests/auto/accessibility/data/defaults/radiodelegate.qml b/tests/auto/accessibility/data/defaults/radiodelegate.qml new file mode 100644 index 00000000..f2bec8bc --- /dev/null +++ b/tests/auto/accessibility/data/defaults/radiodelegate.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +RadioDelegate { + text: "RadioDelegate" +} diff --git a/tests/auto/accessibility/data/defaults/rangeslider.qml b/tests/auto/accessibility/data/defaults/rangeslider.qml new file mode 100644 index 00000000..95bff377 --- /dev/null +++ b/tests/auto/accessibility/data/defaults/rangeslider.qml @@ -0,0 +1,11 @@ +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 +} diff --git a/tests/auto/accessibility/data/defaults/roundbutton.qml b/tests/auto/accessibility/data/defaults/roundbutton.qml new file mode 100644 index 00000000..20f0ed9a --- /dev/null +++ b/tests/auto/accessibility/data/defaults/roundbutton.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +RoundButton { + text: "RoundButton" +} diff --git a/tests/auto/accessibility/data/defaults/scrollbar.qml b/tests/auto/accessibility/data/defaults/scrollbar.qml new file mode 100644 index 00000000..1e7cf155 --- /dev/null +++ b/tests/auto/accessibility/data/defaults/scrollbar.qml @@ -0,0 +1,4 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +ScrollBar { } diff --git a/tests/auto/accessibility/data/defaults/scrollindicator.qml b/tests/auto/accessibility/data/defaults/scrollindicator.qml new file mode 100644 index 00000000..24ef9271 --- /dev/null +++ b/tests/auto/accessibility/data/defaults/scrollindicator.qml @@ -0,0 +1,4 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +ScrollIndicator { } diff --git a/tests/auto/accessibility/data/defaults/slider.qml b/tests/auto/accessibility/data/defaults/slider.qml new file mode 100644 index 00000000..0d1db79c --- /dev/null +++ b/tests/auto/accessibility/data/defaults/slider.qml @@ -0,0 +1,10 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +Slider { + from: 0 + to: 100 + value: 50 + stepSize: 1 + orientation: Qt.Horizontal +} diff --git a/tests/auto/accessibility/data/defaults/spinbox.qml b/tests/auto/accessibility/data/defaults/spinbox.qml new file mode 100644 index 00000000..3da1f868 --- /dev/null +++ b/tests/auto/accessibility/data/defaults/spinbox.qml @@ -0,0 +1,9 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +SpinBox { + from: 0 + to: 100 + value: 50 + stepSize: 1 +} diff --git a/tests/auto/accessibility/data/defaults/stackview.qml b/tests/auto/accessibility/data/defaults/stackview.qml new file mode 100644 index 00000000..48cb384e --- /dev/null +++ b/tests/auto/accessibility/data/defaults/stackview.qml @@ -0,0 +1,4 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +StackView { } diff --git a/tests/auto/accessibility/data/defaults/swipedelegate.qml b/tests/auto/accessibility/data/defaults/swipedelegate.qml new file mode 100644 index 00000000..d6f503c4 --- /dev/null +++ b/tests/auto/accessibility/data/defaults/swipedelegate.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +SwipeDelegate { + text: "SwipeDelegate" +} diff --git a/tests/auto/accessibility/data/defaults/swipeview.qml b/tests/auto/accessibility/data/defaults/swipeview.qml new file mode 100644 index 00000000..efb185e6 --- /dev/null +++ b/tests/auto/accessibility/data/defaults/swipeview.qml @@ -0,0 +1,4 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +SwipeView { } diff --git a/tests/auto/accessibility/data/defaults/switch.qml b/tests/auto/accessibility/data/defaults/switch.qml new file mode 100644 index 00000000..b9c8a572 --- /dev/null +++ b/tests/auto/accessibility/data/defaults/switch.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +Switch { + text: "Switch" +} diff --git a/tests/auto/accessibility/data/defaults/switchdelegate.qml b/tests/auto/accessibility/data/defaults/switchdelegate.qml new file mode 100644 index 00000000..d0d9599c --- /dev/null +++ b/tests/auto/accessibility/data/defaults/switchdelegate.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +SwitchDelegate { + text: "SwitchDelegate" +} diff --git a/tests/auto/accessibility/data/defaults/tabbar.qml b/tests/auto/accessibility/data/defaults/tabbar.qml new file mode 100644 index 00000000..d65b1305 --- /dev/null +++ b/tests/auto/accessibility/data/defaults/tabbar.qml @@ -0,0 +1,4 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +TabBar { } diff --git a/tests/auto/accessibility/data/defaults/tabbutton.qml b/tests/auto/accessibility/data/defaults/tabbutton.qml new file mode 100644 index 00000000..72277a9f --- /dev/null +++ b/tests/auto/accessibility/data/defaults/tabbutton.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +TabButton { + text: "TabButton" +} diff --git a/tests/auto/accessibility/data/defaults/textarea.qml b/tests/auto/accessibility/data/defaults/textarea.qml new file mode 100644 index 00000000..c861cda4 --- /dev/null +++ b/tests/auto/accessibility/data/defaults/textarea.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +TextArea { + text: "TextArea" +} diff --git a/tests/auto/accessibility/data/defaults/textfield.qml b/tests/auto/accessibility/data/defaults/textfield.qml new file mode 100644 index 00000000..222a1223 --- /dev/null +++ b/tests/auto/accessibility/data/defaults/textfield.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +TextField { + text: "TextField" +} diff --git a/tests/auto/accessibility/data/defaults/toolbar.qml b/tests/auto/accessibility/data/defaults/toolbar.qml new file mode 100644 index 00000000..f8cbe311 --- /dev/null +++ b/tests/auto/accessibility/data/defaults/toolbar.qml @@ -0,0 +1,4 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +ToolBar { } diff --git a/tests/auto/accessibility/data/defaults/toolbutton.qml b/tests/auto/accessibility/data/defaults/toolbutton.qml new file mode 100644 index 00000000..84d67cfa --- /dev/null +++ b/tests/auto/accessibility/data/defaults/toolbutton.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +ToolButton { + text: "ToolButton" +} diff --git a/tests/auto/accessibility/data/defaults/tooltip.qml b/tests/auto/accessibility/data/defaults/tooltip.qml new file mode 100644 index 00000000..a6f7718d --- /dev/null +++ b/tests/auto/accessibility/data/defaults/tooltip.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +ToolTip { + text: "ToolTip" +} diff --git a/tests/auto/accessibility/data/defaults/tumbler.qml b/tests/auto/accessibility/data/defaults/tumbler.qml new file mode 100644 index 00000000..fda5c2bd --- /dev/null +++ b/tests/auto/accessibility/data/defaults/tumbler.qml @@ -0,0 +1,4 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +Tumbler { } diff --git a/tests/auto/accessibility/data/defaults/weeknumbercolumn-2.qml b/tests/auto/accessibility/data/defaults/weeknumbercolumn-2.qml new file mode 100644 index 00000000..2c5b836b --- /dev/null +++ b/tests/auto/accessibility/data/defaults/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/defaults/weeknumbercolumn.qml b/tests/auto/accessibility/data/defaults/weeknumbercolumn.qml new file mode 100644 index 00000000..71d533ef --- /dev/null +++ b/tests/auto/accessibility/data/defaults/weeknumbercolumn.qml @@ -0,0 +1,6 @@ +import QtQuick 2.12 +import Qt.labs.calendar 1.0 + +WeekNumberColumn { + Accessible.name: "WeekNumberColumn" +} diff --git a/tests/auto/accessibility/data/dial.qml b/tests/auto/accessibility/data/dial.qml deleted file mode 100644 index 9a471548..00000000 --- a/tests/auto/accessibility/data/dial.qml +++ /dev/null @@ -1,4 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -Dial { } diff --git a/tests/auto/accessibility/data/dialog.qml b/tests/auto/accessibility/data/dialog.qml deleted file mode 100644 index 20317a31..00000000 --- a/tests/auto/accessibility/data/dialog.qml +++ /dev/null @@ -1,6 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -Dialog { - title: "Dialog" -} diff --git a/tests/auto/accessibility/data/drawer.qml b/tests/auto/accessibility/data/drawer.qml deleted file mode 100644 index 9b0db5fa..00000000 --- a/tests/auto/accessibility/data/drawer.qml +++ /dev/null @@ -1,4 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -Drawer { } diff --git a/tests/auto/accessibility/data/frame.qml b/tests/auto/accessibility/data/frame.qml deleted file mode 100644 index 02e45a78..00000000 --- a/tests/auto/accessibility/data/frame.qml +++ /dev/null @@ -1,4 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -Frame { } diff --git a/tests/auto/accessibility/data/groupbox.qml b/tests/auto/accessibility/data/groupbox.qml deleted file mode 100644 index 0fa8cff5..00000000 --- a/tests/auto/accessibility/data/groupbox.qml +++ /dev/null @@ -1,6 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -GroupBox { - title: "GroupBox" -} diff --git a/tests/auto/accessibility/data/itemdelegate.qml b/tests/auto/accessibility/data/itemdelegate.qml deleted file mode 100644 index 52831648..00000000 --- a/tests/auto/accessibility/data/itemdelegate.qml +++ /dev/null @@ -1,6 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -ItemDelegate { - text: "ItemDelegate" -} diff --git a/tests/auto/accessibility/data/label.qml b/tests/auto/accessibility/data/label.qml deleted file mode 100644 index 6d7466bc..00000000 --- a/tests/auto/accessibility/data/label.qml +++ /dev/null @@ -1,6 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -Label { - text: "Label" -} diff --git a/tests/auto/accessibility/data/menu.qml b/tests/auto/accessibility/data/menu.qml deleted file mode 100644 index 126914d1..00000000 --- a/tests/auto/accessibility/data/menu.qml +++ /dev/null @@ -1,4 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -Menu { } diff --git a/tests/auto/accessibility/data/menuitem.qml b/tests/auto/accessibility/data/menuitem.qml deleted file mode 100644 index 97fd478f..00000000 --- a/tests/auto/accessibility/data/menuitem.qml +++ /dev/null @@ -1,6 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -MenuItem { - text: "MenuItem" -} diff --git a/tests/auto/accessibility/data/monthgrid-2.qml b/tests/auto/accessibility/data/monthgrid-2.qml deleted file mode 100644 index 6368d090..00000000 --- a/tests/auto/accessibility/data/monthgrid-2.qml +++ /dev/null @@ -1,6 +0,0 @@ -import QtQuick 2.12 -import Qt.labs.calendar 1.0 - -MonthGrid { - title: "MonthGrid" -} diff --git a/tests/auto/accessibility/data/monthgrid.qml b/tests/auto/accessibility/data/monthgrid.qml deleted file mode 100644 index 03de2499..00000000 --- a/tests/auto/accessibility/data/monthgrid.qml +++ /dev/null @@ -1,7 +0,0 @@ -import QtQuick 2.12 -import Qt.labs.calendar 1.0 - -MonthGrid { - title: "MonthGrid" - Accessible.name: title -} 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/data/page.qml b/tests/auto/accessibility/data/page.qml deleted file mode 100644 index 84036878..00000000 --- a/tests/auto/accessibility/data/page.qml +++ /dev/null @@ -1,6 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -Page { - title: "Page" -} diff --git a/tests/auto/accessibility/data/pageindicator.qml b/tests/auto/accessibility/data/pageindicator.qml deleted file mode 100644 index 30184167..00000000 --- a/tests/auto/accessibility/data/pageindicator.qml +++ /dev/null @@ -1,4 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -PageIndicator { } diff --git a/tests/auto/accessibility/data/pane.qml b/tests/auto/accessibility/data/pane.qml deleted file mode 100644 index bde4fad5..00000000 --- a/tests/auto/accessibility/data/pane.qml +++ /dev/null @@ -1,4 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -Pane { } diff --git a/tests/auto/accessibility/data/popup.qml b/tests/auto/accessibility/data/popup.qml deleted file mode 100644 index 907d0c55..00000000 --- a/tests/auto/accessibility/data/popup.qml +++ /dev/null @@ -1,4 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -Popup { } diff --git a/tests/auto/accessibility/data/progressbar.qml b/tests/auto/accessibility/data/progressbar.qml deleted file mode 100644 index 74b2cb84..00000000 --- a/tests/auto/accessibility/data/progressbar.qml +++ /dev/null @@ -1,8 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -ProgressBar { - from: 0 - to: 100 - value: 50 -} diff --git a/tests/auto/accessibility/data/radiobutton.qml b/tests/auto/accessibility/data/radiobutton.qml deleted file mode 100644 index 1b046d3e..00000000 --- a/tests/auto/accessibility/data/radiobutton.qml +++ /dev/null @@ -1,6 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -RadioButton { - text: "RadioButton" -} diff --git a/tests/auto/accessibility/data/radiodelegate.qml b/tests/auto/accessibility/data/radiodelegate.qml deleted file mode 100644 index f2bec8bc..00000000 --- a/tests/auto/accessibility/data/radiodelegate.qml +++ /dev/null @@ -1,6 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -RadioDelegate { - text: "RadioDelegate" -} diff --git a/tests/auto/accessibility/data/rangeslider.qml b/tests/auto/accessibility/data/rangeslider.qml deleted file mode 100644 index 95bff377..00000000 --- a/tests/auto/accessibility/data/rangeslider.qml +++ /dev/null @@ -1,11 +0,0 @@ -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 -} diff --git a/tests/auto/accessibility/data/roundbutton.qml b/tests/auto/accessibility/data/roundbutton.qml deleted file mode 100644 index 20f0ed9a..00000000 --- a/tests/auto/accessibility/data/roundbutton.qml +++ /dev/null @@ -1,6 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -RoundButton { - text: "RoundButton" -} diff --git a/tests/auto/accessibility/data/scrollbar.qml b/tests/auto/accessibility/data/scrollbar.qml deleted file mode 100644 index 1e7cf155..00000000 --- a/tests/auto/accessibility/data/scrollbar.qml +++ /dev/null @@ -1,4 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -ScrollBar { } diff --git a/tests/auto/accessibility/data/scrollindicator.qml b/tests/auto/accessibility/data/scrollindicator.qml deleted file mode 100644 index 24ef9271..00000000 --- a/tests/auto/accessibility/data/scrollindicator.qml +++ /dev/null @@ -1,4 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -ScrollIndicator { } diff --git a/tests/auto/accessibility/data/slider.qml b/tests/auto/accessibility/data/slider.qml deleted file mode 100644 index 0d1db79c..00000000 --- a/tests/auto/accessibility/data/slider.qml +++ /dev/null @@ -1,10 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -Slider { - from: 0 - to: 100 - value: 50 - stepSize: 1 - orientation: Qt.Horizontal -} diff --git a/tests/auto/accessibility/data/spinbox.qml b/tests/auto/accessibility/data/spinbox.qml deleted file mode 100644 index 3da1f868..00000000 --- a/tests/auto/accessibility/data/spinbox.qml +++ /dev/null @@ -1,9 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -SpinBox { - from: 0 - to: 100 - value: 50 - stepSize: 1 -} diff --git a/tests/auto/accessibility/data/stackview.qml b/tests/auto/accessibility/data/stackview.qml deleted file mode 100644 index 48cb384e..00000000 --- a/tests/auto/accessibility/data/stackview.qml +++ /dev/null @@ -1,4 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -StackView { } diff --git a/tests/auto/accessibility/data/swipedelegate.qml b/tests/auto/accessibility/data/swipedelegate.qml deleted file mode 100644 index d6f503c4..00000000 --- a/tests/auto/accessibility/data/swipedelegate.qml +++ /dev/null @@ -1,6 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -SwipeDelegate { - text: "SwipeDelegate" -} diff --git a/tests/auto/accessibility/data/swipeview.qml b/tests/auto/accessibility/data/swipeview.qml deleted file mode 100644 index efb185e6..00000000 --- a/tests/auto/accessibility/data/swipeview.qml +++ /dev/null @@ -1,4 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -SwipeView { } diff --git a/tests/auto/accessibility/data/switch.qml b/tests/auto/accessibility/data/switch.qml deleted file mode 100644 index b9c8a572..00000000 --- a/tests/auto/accessibility/data/switch.qml +++ /dev/null @@ -1,6 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -Switch { - text: "Switch" -} diff --git a/tests/auto/accessibility/data/switchdelegate.qml b/tests/auto/accessibility/data/switchdelegate.qml deleted file mode 100644 index d0d9599c..00000000 --- a/tests/auto/accessibility/data/switchdelegate.qml +++ /dev/null @@ -1,6 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -SwitchDelegate { - text: "SwitchDelegate" -} diff --git a/tests/auto/accessibility/data/tabbar.qml b/tests/auto/accessibility/data/tabbar.qml deleted file mode 100644 index d65b1305..00000000 --- a/tests/auto/accessibility/data/tabbar.qml +++ /dev/null @@ -1,4 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -TabBar { } diff --git a/tests/auto/accessibility/data/tabbutton.qml b/tests/auto/accessibility/data/tabbutton.qml deleted file mode 100644 index 72277a9f..00000000 --- a/tests/auto/accessibility/data/tabbutton.qml +++ /dev/null @@ -1,6 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -TabButton { - text: "TabButton" -} diff --git a/tests/auto/accessibility/data/textarea.qml b/tests/auto/accessibility/data/textarea.qml deleted file mode 100644 index c861cda4..00000000 --- a/tests/auto/accessibility/data/textarea.qml +++ /dev/null @@ -1,6 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -TextArea { - text: "TextArea" -} diff --git a/tests/auto/accessibility/data/textfield.qml b/tests/auto/accessibility/data/textfield.qml deleted file mode 100644 index 222a1223..00000000 --- a/tests/auto/accessibility/data/textfield.qml +++ /dev/null @@ -1,6 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -TextField { - text: "TextField" -} diff --git a/tests/auto/accessibility/data/toolbar.qml b/tests/auto/accessibility/data/toolbar.qml deleted file mode 100644 index f8cbe311..00000000 --- a/tests/auto/accessibility/data/toolbar.qml +++ /dev/null @@ -1,4 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -ToolBar { } diff --git a/tests/auto/accessibility/data/toolbutton.qml b/tests/auto/accessibility/data/toolbutton.qml deleted file mode 100644 index 84d67cfa..00000000 --- a/tests/auto/accessibility/data/toolbutton.qml +++ /dev/null @@ -1,6 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -ToolButton { - text: "ToolButton" -} diff --git a/tests/auto/accessibility/data/tooltip.qml b/tests/auto/accessibility/data/tooltip.qml deleted file mode 100644 index a6f7718d..00000000 --- a/tests/auto/accessibility/data/tooltip.qml +++ /dev/null @@ -1,6 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -ToolTip { - text: "ToolTip" -} diff --git a/tests/auto/accessibility/data/tumbler.qml b/tests/auto/accessibility/data/tumbler.qml deleted file mode 100644 index fda5c2bd..00000000 --- a/tests/auto/accessibility/data/tumbler.qml +++ /dev/null @@ -1,4 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.12 - -Tumbler { } diff --git a/tests/auto/accessibility/data/weeknumbercolumn-2.qml b/tests/auto/accessibility/data/weeknumbercolumn-2.qml deleted file mode 100644 index 2c5b836b..00000000 --- a/tests/auto/accessibility/data/weeknumbercolumn-2.qml +++ /dev/null @@ -1,4 +0,0 @@ -import QtQuick 2.12 -import Qt.labs.calendar 1.0 - -WeekNumberColumn { } diff --git a/tests/auto/accessibility/data/weeknumbercolumn.qml b/tests/auto/accessibility/data/weeknumbercolumn.qml deleted file mode 100644 index 71d533ef..00000000 --- a/tests/auto/accessibility/data/weeknumbercolumn.qml +++ /dev/null @@ -1,6 +0,0 @@ -import QtQuick 2.12 -import Qt.labs.calendar 1.0 - -WeekNumberColumn { - Accessible.name: "WeekNumberColumn" -} 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(object); + if (!item) { + QQuickPopup *popup = qobject_cast(object); + if (popup) + item = popup->popupItem(); + } + return item; +} + void tst_accessibility::a11y_data() { - QTest::addColumn("name"); + QTest::addColumn("fileBaseName"); QTest::addColumn("role"); QTest::addColumn("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 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("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 object(component.create()); QVERIFY2(!object.isNull(), qPrintable(component.errorString())); - QQuickItem *item = qobject_cast(object.data()); - if (!item) { - QQuickPopup *popup = qobject_cast(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) -- cgit v1.2.3