summaryrefslogtreecommitdiffstats
path: root/src/widgets/accessible/qaccessiblewidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/widgets/accessible/qaccessiblewidget.cpp')
-rw-r--r--src/widgets/accessible/qaccessiblewidget.cpp29
1 files changed, 10 insertions, 19 deletions
diff --git a/src/widgets/accessible/qaccessiblewidget.cpp b/src/widgets/accessible/qaccessiblewidget.cpp
index 3d18117dd78..b4adae2e6e6 100644
--- a/src/widgets/accessible/qaccessiblewidget.cpp
+++ b/src/widgets/accessible/qaccessiblewidget.cpp
@@ -224,29 +224,20 @@ QAccessibleWidget::relations(QAccessible::Relation match /*= QAccessible::AllRel
QList<std::pair<QAccessibleInterface *, QAccessible::Relation>> rels;
if (match & QAccessible::Label) {
const QAccessible::Relation rel = QAccessible::Label;
- if (QWidget *parent = widget()->parentWidget()) {
#if QT_CONFIG(shortcut) && QT_CONFIG(label)
- // first check for all siblings that are labels to us
- // ideally we would go through all objects and check, but that
- // will be too expensive
- const QList<QWidget*> kids = _q_ac_childWidgets(parent);
- for (QWidget *kid : kids) {
- if (QLabel *labelSibling = qobject_cast<QLabel*>(kid)) {
- if (labelSibling->buddy() == widget()) {
- QAccessibleInterface *iface = QAccessible::queryAccessibleInterface(labelSibling);
- rels.emplace_back(iface, rel);
- }
- }
- }
+ for (QLabel *label : std::as_const(widget()->d_func()->labels)) {
+ Q_ASSERT(label);
+ QAccessibleInterface *iface = QAccessible::queryAccessibleInterface(label);
+ rels.emplace_back(iface, rel);
+ }
#endif
#if QT_CONFIG(groupbox)
- QGroupBox *groupbox = qobject_cast<QGroupBox*>(parent);
- if (groupbox && !groupbox->title().isEmpty()) {
- QAccessibleInterface *iface = QAccessible::queryAccessibleInterface(groupbox);
- rels.emplace_back(iface, rel);
- }
-#endif
+ QGroupBox *groupbox = qobject_cast<QGroupBox *>(widget()->parentWidget());
+ if (groupbox && !groupbox->title().isEmpty()) {
+ QAccessibleInterface *iface = QAccessible::queryAccessibleInterface(groupbox);
+ rels.emplace_back(iface, rel);
}
+#endif
}
if (match & QAccessible::Controlled) {