From 5677d79bf28ba526bdee8851be3c5781ef8736f6 Mon Sep 17 00:00:00 2001 From: Mike Achtelik Date: Thu, 24 Mar 2022 23:23:52 +0100 Subject: [PATCH] iOS A11Y: Set more accessibilityTraits MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Set traits for roles that have a direct mapping between QAccessible::Role and UIAccessibilityTraits. This allows the screen reader to pick up on them and give additional info e.g. for links. Pick-to: 6.3 6.2 5.15 Change-Id: I0f85e525fef390dcdf1ea664a0d325ce54f5b25b Reviewed-by: Tor Arne Vestbø --- src/plugins/platforms/ios/quiaccessibilityelement.mm | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/plugins/platforms/ios/quiaccessibilityelement.mm b/src/plugins/platforms/ios/quiaccessibilityelement.mm index b6c8ca0620..c0ba799ac0 100644 --- a/src/plugins/platforms/ios/quiaccessibilityelement.mm +++ b/src/plugins/platforms/ios/quiaccessibilityelement.mm @@ -160,6 +160,9 @@ QT_NAMESPACE_ALIAS_OBJC_CLASS(QMacAccessibilityElement); if (state.searchEdit) traits |= UIAccessibilityTraitSearchField; + if (state.selected) + traits |= UIAccessibilityTraitSelected; + const auto accessibleRole = iface->role(); if (accessibleRole == QAccessible::Button) { traits |= UIAccessibilityTraitButton; @@ -169,6 +172,14 @@ QT_NAMESPACE_ALIAS_OBJC_CLASS(QMacAccessibilityElement); return textField.accessibilityTraits; }(); traits |= defaultTextFieldTraits; + } else if (accessibleRole == QAccessible::Graphic) { + traits |= UIAccessibilityTraitImage; + } else if (accessibleRole == QAccessible::Heading) { + traits |= UIAccessibilityTraitHeader; + } else if (accessibleRole == QAccessible::Link) { + traits |= UIAccessibilityTraitLink; + } else if (accessibleRole == QAccessible::StaticText) { + traits |= UIAccessibilityTraitStaticText; } if (iface->valueInterface())