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>
bb10
Mike Achtelik 2022-03-24 23:23:52 +01:00
parent 04fc4300a5
commit 5677d79bf2
1 changed files with 11 additions and 0 deletions

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