diff options
Diffstat (limited to 'tests/auto/quickcontrols2/accessibility')
90 files changed, 921 insertions, 0 deletions
diff --git a/tests/auto/quickcontrols2/accessibility/BLACKLIST b/tests/auto/quickcontrols2/accessibility/BLACKLIST new file mode 100644 index 0000000000..fe7a87f847 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/BLACKLIST @@ -0,0 +1,2 @@ +[a11y:Label] +opensuse-leap diff --git a/tests/auto/quickcontrols2/accessibility/CMakeLists.txt b/tests/auto/quickcontrols2/accessibility/CMakeLists.txt new file mode 100644 index 0000000000..ba27a49741 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/CMakeLists.txt @@ -0,0 +1,54 @@ +# Generated from accessibility.pro. + +if(NOT QT_FEATURE_accessibility) + return() +endif() + +##################################################################### +## tst_accessibility Test: +##################################################################### + +# Collect test data +file(GLOB_RECURSE test_data_glob + RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} + data/*) +list(APPEND test_data ${test_data_glob}) + +qt_internal_add_test(tst_accessibility + SOURCES + ../shared/qtest_quickcontrols.h + ../shared/util.cpp ../shared/util.h + ../shared/visualtestutil.cpp ../shared/visualtestutil.h + tst_accessibility.cpp + DEFINES + QQC2_IMPORT_PATH=\\\"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src\\\" + PUBLIC_LIBRARIES + Qt::CorePrivate + Qt::Gui + Qt::GuiPrivate + Qt::QmlPrivate + Qt::QuickControls2 + Qt::QuickControls2Private + Qt::QuickPrivate + Qt::QuickTemplates2Private + Qt::QuickTest + Qt::TestPrivate + TESTDATA ${test_data} +) + +#### Keys ignored in scope 1:.:.:accessibility.pro:<TRUE>: +# OTHER_FILES = "data/*.qml" +# _REQUIREMENTS = "qtConfig(accessibility)" + +## Scopes: +##################################################################### + +qt_internal_extend_target(tst_accessibility CONDITION ANDROID OR IOS + DEFINES + QT_QMLTEST_DATADIR=\\\":/data\\\" +) + +qt_internal_extend_target(tst_accessibility CONDITION NOT ANDROID AND NOT IOS + DEFINES + QT_QMLTEST_DATADIR=\\\"${CMAKE_CURRENT_SOURCE_DIR}/data\\\" +) diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/abstractbutton.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/abstractbutton.qml new file mode 100644 index 0000000000..29d6b3c0a0 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/abstractbutton.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +AbstractButton { + text: "AbstractButton" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/busyindicator.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/busyindicator.qml new file mode 100644 index 0000000000..baaa9ba80b --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/busyindicator.qml @@ -0,0 +1,4 @@ +import QtQuick +import QtQuick.Controls + +BusyIndicator { } diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/button.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/button.qml new file mode 100644 index 0000000000..0359b3ac15 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/button.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +Button { + text: "Button" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/checkbox.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/checkbox.qml new file mode 100644 index 0000000000..c912be5791 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/checkbox.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +CheckBox { + text: "CheckBox" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/checkdelegate.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/checkdelegate.qml new file mode 100644 index 0000000000..df62bc89d5 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/checkdelegate.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +CheckDelegate { + text: "CheckDelegate" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/combobox.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/combobox.qml new file mode 100644 index 0000000000..bfeac723da --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/combobox.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +ComboBox { + model: ["ComboBox"] +} diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/container.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/container.qml new file mode 100644 index 0000000000..7d29fec426 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/container.qml @@ -0,0 +1,4 @@ +import QtQuick +import QtQuick.Controls + +Container { } diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/control.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/control.qml new file mode 100644 index 0000000000..280cfd2962 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/control.qml @@ -0,0 +1,4 @@ +import QtQuick +import QtQuick.Controls + +Control { } diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/dial.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/dial.qml new file mode 100644 index 0000000000..d7e700b5df --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/dial.qml @@ -0,0 +1,4 @@ +import QtQuick +import QtQuick.Controls + +Dial { } diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/dialog.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/dialog.qml new file mode 100644 index 0000000000..d88fd36d8e --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/dialog.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +Dialog { + title: "Dialog" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/drawer.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/drawer.qml new file mode 100644 index 0000000000..60a35171b2 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/drawer.qml @@ -0,0 +1,4 @@ +import QtQuick +import QtQuick.Controls + +Drawer { } diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/frame.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/frame.qml new file mode 100644 index 0000000000..b70ccb556c --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/frame.qml @@ -0,0 +1,4 @@ +import QtQuick +import QtQuick.Controls + +Frame { } diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/groupbox.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/groupbox.qml new file mode 100644 index 0000000000..24f3a294b8 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/groupbox.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +GroupBox { + title: "GroupBox" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/itemdelegate.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/itemdelegate.qml new file mode 100644 index 0000000000..5ec95fe07e --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/itemdelegate.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +ItemDelegate { + text: "ItemDelegate" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/label.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/label.qml new file mode 100644 index 0000000000..5f6a98cd74 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/label.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +Label { + text: "Label" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/menu.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/menu.qml new file mode 100644 index 0000000000..07fef72849 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/menu.qml @@ -0,0 +1,4 @@ +import QtQuick +import QtQuick.Controls + +Menu { } diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/menuitem.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/menuitem.qml new file mode 100644 index 0000000000..194fa988c8 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/menuitem.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +MenuItem { + text: "MenuItem" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/page.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/page.qml new file mode 100644 index 0000000000..cd1f78e170 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/page.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +Page { + title: "Page" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/pageindicator.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/pageindicator.qml new file mode 100644 index 0000000000..d64d565706 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/pageindicator.qml @@ -0,0 +1,4 @@ +import QtQuick +import QtQuick.Controls + +PageIndicator { } diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/pane.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/pane.qml new file mode 100644 index 0000000000..765c98a394 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/pane.qml @@ -0,0 +1,4 @@ +import QtQuick +import QtQuick.Controls + +Pane { } diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/popup.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/popup.qml new file mode 100644 index 0000000000..c599bd4c0b --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/popup.qml @@ -0,0 +1,4 @@ +import QtQuick +import QtQuick.Controls + +Popup { } diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/progressbar.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/progressbar.qml new file mode 100644 index 0000000000..b3e287c33c --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/progressbar.qml @@ -0,0 +1,8 @@ +import QtQuick +import QtQuick.Controls + +ProgressBar { + from: 0 + to: 100 + value: 50 +} diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/radiobutton.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/radiobutton.qml new file mode 100644 index 0000000000..d796b37e17 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/radiobutton.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +RadioButton { + text: "RadioButton" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/radiodelegate.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/radiodelegate.qml new file mode 100644 index 0000000000..d002b98532 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/radiodelegate.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +RadioDelegate { + text: "RadioDelegate" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/rangeslider.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/rangeslider.qml new file mode 100644 index 0000000000..7bd364c443 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/rangeslider.qml @@ -0,0 +1,11 @@ +import QtQuick +import QtQuick.Controls + +RangeSlider { + from: 0 + to: 100 + first.value: 25 + second.value: 75 + stepSize: 1 + orientation: Qt.Horizontal +} diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/roundbutton.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/roundbutton.qml new file mode 100644 index 0000000000..6c78c0a47d --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/roundbutton.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +RoundButton { + text: "RoundButton" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/scrollbar.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/scrollbar.qml new file mode 100644 index 0000000000..c36b1534b1 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/scrollbar.qml @@ -0,0 +1,4 @@ +import QtQuick +import QtQuick.Controls + +ScrollBar { } diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/scrollindicator.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/scrollindicator.qml new file mode 100644 index 0000000000..5b2f44b674 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/scrollindicator.qml @@ -0,0 +1,4 @@ +import QtQuick +import QtQuick.Controls + +ScrollIndicator { } diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/slider.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/slider.qml new file mode 100644 index 0000000000..fd60a19844 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/slider.qml @@ -0,0 +1,10 @@ +import QtQuick +import QtQuick.Controls + +Slider { + from: 0 + to: 100 + value: 50 + stepSize: 1 + orientation: Qt.Horizontal +} diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/spinbox.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/spinbox.qml new file mode 100644 index 0000000000..159e1f4676 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/spinbox.qml @@ -0,0 +1,9 @@ +import QtQuick +import QtQuick.Controls + +SpinBox { + from: 0 + to: 100 + value: 50 + stepSize: 1 +} diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/stackview.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/stackview.qml new file mode 100644 index 0000000000..bd540b91a0 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/stackview.qml @@ -0,0 +1,4 @@ +import QtQuick +import QtQuick.Controls + +StackView { } diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/swipedelegate.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/swipedelegate.qml new file mode 100644 index 0000000000..d3724d4dc2 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/swipedelegate.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +SwipeDelegate { + text: "SwipeDelegate" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/swipeview.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/swipeview.qml new file mode 100644 index 0000000000..9eb8221666 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/swipeview.qml @@ -0,0 +1,4 @@ +import QtQuick +import QtQuick.Controls + +SwipeView { } diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/switch.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/switch.qml new file mode 100644 index 0000000000..00213086aa --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/switch.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +Switch { + text: "Switch" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/switchdelegate.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/switchdelegate.qml new file mode 100644 index 0000000000..9f71ed6848 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/switchdelegate.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +SwitchDelegate { + text: "SwitchDelegate" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/tabbar.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/tabbar.qml new file mode 100644 index 0000000000..423bfea903 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/tabbar.qml @@ -0,0 +1,4 @@ +import QtQuick +import QtQuick.Controls + +TabBar { } diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/tabbutton.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/tabbutton.qml new file mode 100644 index 0000000000..ab9ea8ae2c --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/tabbutton.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +TabButton { + text: "TabButton" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/textarea.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/textarea.qml new file mode 100644 index 0000000000..9a1f31d029 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/textarea.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +TextArea { + text: "TextArea" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/textfield.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/textfield.qml new file mode 100644 index 0000000000..42a16bae78 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/textfield.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +TextField { + text: "TextField" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/toolbar.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/toolbar.qml new file mode 100644 index 0000000000..01b93d7d91 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/toolbar.qml @@ -0,0 +1,4 @@ +import QtQuick +import QtQuick.Controls + +ToolBar { } diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/toolbutton.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/toolbutton.qml new file mode 100644 index 0000000000..40e1152edc --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/toolbutton.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +ToolButton { + text: "ToolButton" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/tooltip.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/tooltip.qml new file mode 100644 index 0000000000..f1c3cebee5 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/tooltip.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +ToolTip { + text: "ToolTip" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/defaults/tumbler.qml b/tests/auto/quickcontrols2/accessibility/data/defaults/tumbler.qml new file mode 100644 index 0000000000..e3db175bd2 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/defaults/tumbler.qml @@ -0,0 +1,4 @@ +import QtQuick +import QtQuick.Controls + +Tumbler { } diff --git a/tests/auto/quickcontrols2/accessibility/data/ordering/page.qml b/tests/auto/quickcontrols2/accessibility/data/ordering/page.qml new file mode 100644 index 0000000000..8efafe3232 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/ordering/page.qml @@ -0,0 +1,23 @@ +import QtQuick +import QtQuick.Controls + +Page { + title: "Page" + Accessible.role: Accessible.Pane + + header: Label { + text: "Header" + } + + footer: Label { + text: "Footer" + } + + Label { + text: "Content item 1" + } + + Label { + text: "Content item 2" + } +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/abstractbutton.qml b/tests/auto/quickcontrols2/accessibility/data/override/abstractbutton.qml new file mode 100644 index 0000000000..ac8efe2601 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/abstractbutton.qml @@ -0,0 +1,7 @@ +import QtQuick +import QtQuick.Controls + +AbstractButton { + text: "AbstractButton" + Accessible.name: text + "Override" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/busyindicator.qml b/tests/auto/quickcontrols2/accessibility/data/override/busyindicator.qml new file mode 100644 index 0000000000..439788d121 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/busyindicator.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +BusyIndicator { + Accessible.name: "BusyIndicatorOverride" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/button.qml b/tests/auto/quickcontrols2/accessibility/data/override/button.qml new file mode 100644 index 0000000000..578af86c78 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/button.qml @@ -0,0 +1,7 @@ +import QtQuick +import QtQuick.Controls + +Button { + text: "Button" + Accessible.name: text + "Override" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/checkbox.qml b/tests/auto/quickcontrols2/accessibility/data/override/checkbox.qml new file mode 100644 index 0000000000..5df735091e --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/checkbox.qml @@ -0,0 +1,7 @@ +import QtQuick +import QtQuick.Controls + +CheckBox { + text: "CheckBox" + Accessible.name: text + "Override" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/checkdelegate.qml b/tests/auto/quickcontrols2/accessibility/data/override/checkdelegate.qml new file mode 100644 index 0000000000..43f65d5083 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/checkdelegate.qml @@ -0,0 +1,7 @@ +import QtQuick +import QtQuick.Controls + +CheckDelegate { + text: "CheckDelegate" + Accessible.name: text + "Override" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/combobox.qml b/tests/auto/quickcontrols2/accessibility/data/override/combobox.qml new file mode 100644 index 0000000000..fa6ed3b4bf --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/combobox.qml @@ -0,0 +1,7 @@ +import QtQuick +import QtQuick.Controls + +ComboBox { + model: ["ComboBox"] + Accessible.name: model[0] + "Override" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/container.qml b/tests/auto/quickcontrols2/accessibility/data/override/container.qml new file mode 100644 index 0000000000..4e73f341d6 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/container.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +Container { + Accessible.name: "ContainerOverride" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/control.qml b/tests/auto/quickcontrols2/accessibility/data/override/control.qml new file mode 100644 index 0000000000..9c2be4617f --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/control.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +Control { + Accessible.name: "ControlOverride" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/dial.qml b/tests/auto/quickcontrols2/accessibility/data/override/dial.qml new file mode 100644 index 0000000000..8dbf0e3764 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/dial.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +Dial { + Accessible.name: "DialOverride" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/dialog.qml b/tests/auto/quickcontrols2/accessibility/data/override/dialog.qml new file mode 100644 index 0000000000..d1f3197196 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/dialog.qml @@ -0,0 +1,7 @@ +import QtQuick +import QtQuick.Controls + +Dialog { + title: "Dialog" + Accessible.name: title + "Override" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/drawer.qml b/tests/auto/quickcontrols2/accessibility/data/override/drawer.qml new file mode 100644 index 0000000000..02e973e2cc --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/drawer.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +Drawer { + Accessible.name: "DrawerOverride" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/frame.qml b/tests/auto/quickcontrols2/accessibility/data/override/frame.qml new file mode 100644 index 0000000000..55086b35c0 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/frame.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +Frame { + Accessible.name: "FrameOverride" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/groupbox.qml b/tests/auto/quickcontrols2/accessibility/data/override/groupbox.qml new file mode 100644 index 0000000000..d09d0845c9 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/groupbox.qml @@ -0,0 +1,7 @@ +import QtQuick +import QtQuick.Controls + +GroupBox { + title: "GroupBox" + Accessible.name: title + "Override" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/itemdelegate.qml b/tests/auto/quickcontrols2/accessibility/data/override/itemdelegate.qml new file mode 100644 index 0000000000..2f32cb7514 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/itemdelegate.qml @@ -0,0 +1,7 @@ +import QtQuick +import QtQuick.Controls + +ItemDelegate { + text: "ItemDelegate" + Accessible.name: text + "Override" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/label.qml b/tests/auto/quickcontrols2/accessibility/data/override/label.qml new file mode 100644 index 0000000000..5c1310f875 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/label.qml @@ -0,0 +1,7 @@ +import QtQuick +import QtQuick.Controls + +Label { + text: "Label" + Accessible.name: text + "Override" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/menu.qml b/tests/auto/quickcontrols2/accessibility/data/override/menu.qml new file mode 100644 index 0000000000..57a1b3d61f --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/menu.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +Menu { + Accessible.name: "MenuOverride" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/menuitem.qml b/tests/auto/quickcontrols2/accessibility/data/override/menuitem.qml new file mode 100644 index 0000000000..e1c064f3b5 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/menuitem.qml @@ -0,0 +1,7 @@ +import QtQuick +import QtQuick.Controls + +MenuItem { + text: "MenuItem" + Accessible.name: text + "Override" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/page.qml b/tests/auto/quickcontrols2/accessibility/data/override/page.qml new file mode 100644 index 0000000000..b3b87e8ab6 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/page.qml @@ -0,0 +1,7 @@ +import QtQuick +import QtQuick.Controls + +Page { + title: "Page" + Accessible.name: title + "Override" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/pageindicator.qml b/tests/auto/quickcontrols2/accessibility/data/override/pageindicator.qml new file mode 100644 index 0000000000..f366464df7 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/pageindicator.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +PageIndicator { + Accessible.name: "PageIndicatorOverride" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/pane.qml b/tests/auto/quickcontrols2/accessibility/data/override/pane.qml new file mode 100644 index 0000000000..7b57e9a9f5 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/pane.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +Pane { + Accessible.name: "PaneOverride" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/popup.qml b/tests/auto/quickcontrols2/accessibility/data/override/popup.qml new file mode 100644 index 0000000000..9d8d58550a --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/popup.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +Popup { + Accessible.name: "PopupOverride" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/progressbar.qml b/tests/auto/quickcontrols2/accessibility/data/override/progressbar.qml new file mode 100644 index 0000000000..58bd2ae1bd --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/progressbar.qml @@ -0,0 +1,10 @@ +import QtQuick +import QtQuick.Controls + +ProgressBar { + from: 0 + to: 100 + value: 50 + + Accessible.name: "ProgressBarOverride" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/radiobutton.qml b/tests/auto/quickcontrols2/accessibility/data/override/radiobutton.qml new file mode 100644 index 0000000000..3c555256b8 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/radiobutton.qml @@ -0,0 +1,7 @@ +import QtQuick +import QtQuick.Controls + +RadioButton { + text: "RadioButton" + Accessible.name: text + "Override" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/radiodelegate.qml b/tests/auto/quickcontrols2/accessibility/data/override/radiodelegate.qml new file mode 100644 index 0000000000..883f963c5c --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/radiodelegate.qml @@ -0,0 +1,7 @@ +import QtQuick +import QtQuick.Controls + +RadioDelegate { + text: "RadioDelegate" + Accessible.name: text + "Override" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/rangeslider.qml b/tests/auto/quickcontrols2/accessibility/data/override/rangeslider.qml new file mode 100644 index 0000000000..675c34aad1 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/rangeslider.qml @@ -0,0 +1,13 @@ +import QtQuick +import QtQuick.Controls + +RangeSlider { + from: 0 + to: 100 + first.value: 25 + second.value: 75 + stepSize: 1 + orientation: Qt.Horizontal + + Accessible.name: "RangeSliderOverride" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/roundbutton.qml b/tests/auto/quickcontrols2/accessibility/data/override/roundbutton.qml new file mode 100644 index 0000000000..a793ee2833 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/roundbutton.qml @@ -0,0 +1,7 @@ +import QtQuick +import QtQuick.Controls + +RoundButton { + text: "RoundButton" + Accessible.name: text + "Override" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/scrollbar.qml b/tests/auto/quickcontrols2/accessibility/data/override/scrollbar.qml new file mode 100644 index 0000000000..6b3e613c42 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/scrollbar.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +ScrollBar { + Accessible.name: "ScrollBarOverride" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/scrollindicator.qml b/tests/auto/quickcontrols2/accessibility/data/override/scrollindicator.qml new file mode 100644 index 0000000000..5cc1e5d4b8 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/scrollindicator.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +ScrollIndicator { + Accessible.name: "ScrollIndicatorOverride" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/slider.qml b/tests/auto/quickcontrols2/accessibility/data/override/slider.qml new file mode 100644 index 0000000000..9239f8db99 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/slider.qml @@ -0,0 +1,11 @@ +import QtQuick +import QtQuick.Controls + +Slider { + from: 0 + to: 100 + value: 50 + stepSize: 1 + orientation: Qt.Horizontal + Accessible.name: "SliderOverride" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/spinbox.qml b/tests/auto/quickcontrols2/accessibility/data/override/spinbox.qml new file mode 100644 index 0000000000..327f2a6d4a --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/spinbox.qml @@ -0,0 +1,10 @@ +import QtQuick +import QtQuick.Controls + +SpinBox { + from: 0 + to: 100 + value: 50 + stepSize: 1 + Accessible.name: "SpinBoxOverride" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/stackview.qml b/tests/auto/quickcontrols2/accessibility/data/override/stackview.qml new file mode 100644 index 0000000000..dd3b8342f7 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/stackview.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +StackView { + Accessible.name: "StackViewOverride" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/swipedelegate.qml b/tests/auto/quickcontrols2/accessibility/data/override/swipedelegate.qml new file mode 100644 index 0000000000..bc97fc93bc --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/swipedelegate.qml @@ -0,0 +1,7 @@ +import QtQuick +import QtQuick.Controls + +SwipeDelegate { + text: "SwipeDelegate" + Accessible.name: text + "Override" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/swipeview.qml b/tests/auto/quickcontrols2/accessibility/data/override/swipeview.qml new file mode 100644 index 0000000000..809b536210 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/swipeview.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +SwipeView { + Accessible.name: "SwipeViewOverride" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/switch.qml b/tests/auto/quickcontrols2/accessibility/data/override/switch.qml new file mode 100644 index 0000000000..18e3eb70ce --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/switch.qml @@ -0,0 +1,7 @@ +import QtQuick +import QtQuick.Controls + +Switch { + text: "Switch" + Accessible.name: text + "Override" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/switchdelegate.qml b/tests/auto/quickcontrols2/accessibility/data/override/switchdelegate.qml new file mode 100644 index 0000000000..0c66f9e9e9 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/switchdelegate.qml @@ -0,0 +1,7 @@ +import QtQuick +import QtQuick.Controls + +SwitchDelegate { + text: "SwitchDelegate" + Accessible.name: text + "Override" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/tabbar.qml b/tests/auto/quickcontrols2/accessibility/data/override/tabbar.qml new file mode 100644 index 0000000000..a959f68cae --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/tabbar.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +TabBar { + Accessible.name: "TabBarOverride" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/tabbutton.qml b/tests/auto/quickcontrols2/accessibility/data/override/tabbutton.qml new file mode 100644 index 0000000000..1530a2d1bc --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/tabbutton.qml @@ -0,0 +1,7 @@ +import QtQuick +import QtQuick.Controls + +TabButton { + text: "TabButton" + Accessible.name: text + "Override" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/textarea.qml b/tests/auto/quickcontrols2/accessibility/data/override/textarea.qml new file mode 100644 index 0000000000..2b1422252f --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/textarea.qml @@ -0,0 +1,7 @@ +import QtQuick +import QtQuick.Controls + +TextArea { + text: "TextArea" + Accessible.name: text + "Override" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/textfield.qml b/tests/auto/quickcontrols2/accessibility/data/override/textfield.qml new file mode 100644 index 0000000000..42098b6640 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/textfield.qml @@ -0,0 +1,7 @@ +import QtQuick +import QtQuick.Controls + +TextField { + text: "TextField" + Accessible.name: text + "Override" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/toolbar.qml b/tests/auto/quickcontrols2/accessibility/data/override/toolbar.qml new file mode 100644 index 0000000000..97406f8ca5 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/toolbar.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +ToolBar { + Accessible.name: "ToolBarOverride" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/toolbutton.qml b/tests/auto/quickcontrols2/accessibility/data/override/toolbutton.qml new file mode 100644 index 0000000000..5ecb427baf --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/toolbutton.qml @@ -0,0 +1,7 @@ +import QtQuick +import QtQuick.Controls + +ToolButton { + text: "ToolButton" + Accessible.name: text + "Override" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/tooltip.qml b/tests/auto/quickcontrols2/accessibility/data/override/tooltip.qml new file mode 100644 index 0000000000..1a4c3a994f --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/tooltip.qml @@ -0,0 +1,7 @@ +import QtQuick +import QtQuick.Controls + +ToolTip { + text: "ToolTip" + Accessible.name: text + "Override" +} diff --git a/tests/auto/quickcontrols2/accessibility/data/override/tumbler.qml b/tests/auto/quickcontrols2/accessibility/data/override/tumbler.qml new file mode 100644 index 0000000000..947f66cd70 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/data/override/tumbler.qml @@ -0,0 +1,6 @@ +import QtQuick +import QtQuick.Controls + +Tumbler { + Accessible.name: "TumblerOverride" +} diff --git a/tests/auto/quickcontrols2/accessibility/tst_accessibility.cpp b/tests/auto/quickcontrols2/accessibility/tst_accessibility.cpp new file mode 100644 index 0000000000..f2cb8b60e6 --- /dev/null +++ b/tests/auto/quickcontrols2/accessibility/tst_accessibility.cpp @@ -0,0 +1,304 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtTest/qtest.h> +#include <QtQml/qqmlengine.h> +#include <QtQml/qqmlcomponent.h> +#include <QtQml/qqmlcontext.h> +#include <QtQuick/private/qquickitem_p.h> +#include <QtQuickTemplates2/private/qquickpopup_p.h> +#include "../shared/util.h" + +#if QT_CONFIG(accessibility) +#include <QtGui/private/qguiapplication_p.h> +#include <QtGui/qpa/qplatformintegration.h> +#include <QtGui/qpa/qplatformaccessibility.h> +#include <QtQuick/private/qquickaccessibleattached_p.h> +#endif + +class tst_accessibility : public QQmlDataTest +{ + Q_OBJECT + +private slots: + void a11y_data(); + void a11y(); + + void override_data(); + void override(); + + void ordering(); +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>("fileBaseName"); + QTest::addColumn<QAccessible::Role>("role"); + QTest::addColumn<QString>("text"); + + QTest::newRow("AbstractButton") << "abstractbutton" << QAccessible::Button << "AbstractButton"; + QTest::newRow("BusyIndicator") << "busyindicator" << QAccessible::Indicator << ""; + QTest::newRow("Button") << "button" << QAccessible::Button << "Button"; + QTest::newRow("CheckBox") << "checkbox" << QAccessible::CheckBox << "CheckBox"; + QTest::newRow("CheckDelegate") << "checkdelegate" << QAccessible::CheckBox << "CheckDelegate"; + QTest::newRow("ComboBox") << "combobox" << QAccessible::ComboBox << "ComboBox"; + QTest::newRow("Container") << "container" << QAccessible::NoRole << ""; + QTest::newRow("Control") << "control" << QAccessible::NoRole << ""; + QTest::newRow("Dial") << "dial" << QAccessible::Dial << ""; + QTest::newRow("Dialog") << "dialog" << QAccessible::Dialog << "Dialog"; + QTest::newRow("Drawer") << "drawer" << QAccessible::Dialog << ""; + QTest::newRow("Frame") << "frame" << QAccessible::Border << ""; + QTest::newRow("GroupBox") << "groupbox" << QAccessible::Grouping << "GroupBox"; + QTest::newRow("ItemDelegate") << "itemdelegate" << QAccessible::ListItem << "ItemDelegate"; + QTest::newRow("Label") << "label" << QAccessible::StaticText << "Label"; + QTest::newRow("Menu") << "menu" << QAccessible::PopupMenu << ""; + QTest::newRow("MenuItem") << "menuitem" << QAccessible::MenuItem << "MenuItem"; + QTest::newRow("Page") << "page" << QAccessible::PageTab << "Page"; + QTest::newRow("PageIndicator") << "pageindicator" << QAccessible::Indicator << ""; + QTest::newRow("Pane") << "pane" << QAccessible::Pane << ""; + QTest::newRow("Popup") << "popup" << QAccessible::Dialog << ""; + QTest::newRow("ProgressBar") << "progressbar" << QAccessible::ProgressBar << ""; + QTest::newRow("RadioButton") << "radiobutton" << QAccessible::RadioButton << "RadioButton"; + QTest::newRow("RadioDelegate") << "radiodelegate" << QAccessible::RadioButton << "RadioDelegate"; + QTest::newRow("RangeSlider") << "rangeslider" << QAccessible::Slider << ""; + QTest::newRow("RoundButton") << "roundbutton" << QAccessible::Button << "RoundButton"; + QTest::newRow("ScrollBar") << "scrollbar" << QAccessible::ScrollBar << ""; + QTest::newRow("ScrollIndicator") << "scrollindicator" << QAccessible::Indicator << ""; + QTest::newRow("Slider") << "slider" << QAccessible::Slider << ""; + QTest::newRow("SpinBox") << "spinbox" << QAccessible::SpinBox << ""; + QTest::newRow("StackView") << "stackview" << QAccessible::LayeredPane << ""; + QTest::newRow("SwipeDelegate") << "swipedelegate" << QAccessible::ListItem << "SwipeDelegate"; + QTest::newRow("SwipeView") << "swipeview" << QAccessible::PageTabList << ""; + QTest::newRow("Switch") << "switch" << QAccessible::CheckBox << "Switch"; + QTest::newRow("SwitchDelegate") << "switchdelegate" << QAccessible::ListItem << "SwitchDelegate"; + QTest::newRow("TabBar") << "tabbar" << QAccessible::PageTabList << ""; + QTest::newRow("TabButton") << "tabbutton" << QAccessible::PageTab << "TabButton"; + QTest::newRow("TextArea") << "textarea" << QAccessible::EditableText << ""; + QTest::newRow("TextField") << "textfield" << QAccessible::EditableText << ""; + QTest::newRow("ToolBar") << "toolbar" << QAccessible::ToolBar << ""; + QTest::newRow("ToolButton") << "toolbutton" << QAccessible::Button << "ToolButton"; + QTest::newRow("ToolTip") << "tooltip" << QAccessible::ToolTip << "ToolTip"; + QTest::newRow("Tumbler") << "tumbler" << QAccessible::NoRole << ""; // TODO +} + +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) + QQuickAccessibleAttached *attached = QQuickAccessibleAttached::attachedProperties(item); + 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() +{ + 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; +} + +void tst_accessibility::override() +{ + QFETCH(QAccessible::Role, role); + + const QString name = QTest::currentDataTag(); + const QString fileBaseName = name.toLower(); + + QQmlComponent component(&engine); + component.loadUrl(testFileUrl("override/" + 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) + QQuickAccessibleAttached *attached = QQuickAccessibleAttached::attachedProperties(item); + if (QAccessible::isActive()) { + QVERIFY(attached); + } else { + QPlatformAccessibility *accessibility = platformAccessibility(); + if (!accessibility) + QSKIP("No QPlatformAccessibility available."); + accessibility->setActive(true); + if (!attached) + attached = QQuickAccessibleAttached::attachedProperties(item); + } + + QVERIFY(attached); + QCOMPARE(attached->role(), role); + QCOMPARE(attached->name(), name + "Override"); +#else + Q_UNUSED(role); + Q_UNUSED(text); +#endif +} +template <typename Predicate> +void a11yDescendants(QAccessibleInterface *iface, Predicate pred) +{ + for (int i = 0; i < iface->childCount(); ++i) { + if (QAccessibleInterface *child = iface->child(i)) { + pred(child); + a11yDescendants(child, pred); + } + } +} + +void tst_accessibility::ordering() +{ + QQmlComponent component(&engine); + component.loadUrl(testFileUrl("ordering/page.qml")); + + QScopedPointer<QObject> object(component.create()); + QVERIFY2(!object.isNull(), qPrintable(component.errorString())); + +#if QT_CONFIG(accessibility) + QQuickItem *item = findItem(object.data()); + QVERIFY(item); + QAccessibleInterface *iface = QAccessible::queryAccessibleInterface(item); + QVERIFY(iface); + QStringList strings; + a11yDescendants(iface, [&](QAccessibleInterface *iface) {strings << iface->text(QAccessible::Name);}); + QCOMPARE(strings.join(QLatin1String(", ")), "Header, Content item 1, Content item 2, Footer"); +#endif +} + +QTEST_MAIN(tst_accessibility) + +#include "tst_accessibility.moc" |