aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2016-11-01 21:02:02 +0100
committerJ-P Nurmi <jpnurmi@qt.io>2016-11-02 08:13:32 +0000
commita115ec5d1b8598191003fd1fff6f8e43fe9e042f (patch)
treede49d98486948cfb81d493221f3840b8adf4e730
parent244e423d6b58438a2b7f653827412815a335c276 (diff)
GroupBox: fix accessibility support
Change-Id: Ifbbc701a996ed9ddb13f7d16843d0af5ee480ca1 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
-rw-r--r--src/quicktemplates2/qquickgroupbox.cpp17
-rw-r--r--src/quicktemplates2/qquickgroupbox_p.h5
-rw-r--r--tests/auto/accessibility/data/groupbox.qml13
-rw-r--r--tests/auto/accessibility/tst_accessibility.cpp2
4 files changed, 36 insertions, 1 deletions
diff --git a/src/quicktemplates2/qquickgroupbox.cpp b/src/quicktemplates2/qquickgroupbox.cpp
index 5a5a8005..996351a7 100644
--- a/src/quicktemplates2/qquickgroupbox.cpp
+++ b/src/quicktemplates2/qquickgroupbox.cpp
@@ -118,6 +118,7 @@ void QQuickGroupBox::setTitle(const QString &title)
return;
d->title = title;
+ setAccessibleName(title);
emit titleChanged();
}
@@ -152,4 +153,20 @@ QFont QQuickGroupBox::defaultFont() const
return QQuickControlPrivate::themeFont(QPlatformTheme::GroupBoxTitleFont);
}
+#ifndef QT_NO_ACCESSIBILITY
+QAccessible::Role QQuickGroupBox::accessibleRole() const
+{
+ return QAccessible::Grouping;
+}
+
+void QQuickGroupBox::accessibilityActiveChanged(bool active)
+{
+ Q_D(QQuickGroupBox);
+ QQuickFrame::accessibilityActiveChanged(active);
+
+ if (active)
+ setAccessibleName(d->title);
+}
+#endif // QT_NO_ACCESSIBILITY
+
QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickgroupbox_p.h b/src/quicktemplates2/qquickgroupbox_p.h
index 0f1bdc54..98f6ad06 100644
--- a/src/quicktemplates2/qquickgroupbox_p.h
+++ b/src/quicktemplates2/qquickgroupbox_p.h
@@ -76,6 +76,11 @@ Q_SIGNALS:
protected:
QFont defaultFont() const override;
+#ifndef QT_NO_ACCESSIBILITY
+ QAccessible::Role accessibleRole() const override;
+ void accessibilityActiveChanged(bool active) override;
+#endif
+
private:
Q_DISABLE_COPY(QQuickGroupBox)
Q_DECLARE_PRIVATE(QQuickGroupBox)
diff --git a/tests/auto/accessibility/data/groupbox.qml b/tests/auto/accessibility/data/groupbox.qml
new file mode 100644
index 00000000..e454cbfd
--- /dev/null
+++ b/tests/auto/accessibility/data/groupbox.qml
@@ -0,0 +1,13 @@
+import QtQuick 2.5
+import QtQuick.Window 2.2
+import QtQuick.Controls 2.0
+
+Window {
+ visible: true
+
+ GroupBox {
+ id: groupbox
+ objectName: "groupbox"
+ title: "GroupBox"
+ }
+}
diff --git a/tests/auto/accessibility/tst_accessibility.cpp b/tests/auto/accessibility/tst_accessibility.cpp
index e486e6f9..80f0a5b0 100644
--- a/tests/auto/accessibility/tst_accessibility.cpp
+++ b/tests/auto/accessibility/tst_accessibility.cpp
@@ -75,7 +75,7 @@ void tst_accessibility::a11y_data()
QTest::newRow("CheckBox") << "checkbox" << 0x0000002C << "CheckBox"; //QAccessible::CheckBox
QTest::newRow("ComboBox") << "combobox" << 0x0000002E << "ComboBox"; //QAccessible::ComboBox
// Frame
- // GroupBox
+ QTest::newRow("GroupBox") << "groupbox" << 0x00000014 << "GroupBox"; //QAccessible::Grouping
QTest::newRow("Label") << "label" << 0x00000029 << "Label"; //QAccessible::StaticText
QTest::newRow("Menu") << "menu" << 0x0000000B << ""; //QAccessible::PopupMenu
QTest::newRow("Page") << "page" << 0x00000025 << "Page"; //QAccessible::PageTab