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.

Change-Id: I0f85e525fef390dcdf1ea664a0d325ce54f5b25b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
(cherry picked from commit 5677d79bf28ba526bdee8851be3c5781ef8736f6)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Mike Achtelik 2022-03-24 23:23:52 +01:00 committed by Qt Cherry-pick Bot
parent 9ad48c5646
commit 9d553a2dfb

View File

@ -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())