diff options
author | Mike Achtelik <mike.achtelik@gmail.com> | 2022-03-24 23:23:52 +0100 |
---|---|---|
committer | Mike Achtelik <mike.achtelik@gmail.com> | 2022-03-25 11:53:54 +0100 |
commit | 5677d79bf28ba526bdee8851be3c5781ef8736f6 (patch) | |
tree | 093708dad0b9ecc00fa3f008661d75f0db0d2d62 /src/plugins/platforms/ios | |
parent | 04fc4300a50bf81e73264540690b6f532c282415 (diff) |
iOS A11Y: Set more accessibilityTraits
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ø <tor.arne.vestbo@qt.io>
Diffstat (limited to 'src/plugins/platforms/ios')
-rw-r--r-- | src/plugins/platforms/ios/quiaccessibilityelement.mm | 11 |
1 files changed, 11 insertions, 0 deletions
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()) |