Apple asks us to consider the combine behavior, before using ignore, for .accessibilityElement(children: ). And for good reason, if combine works, and later on you decide to change the UI, the accessibility attributes will be updated for you.

Two instances of the Stock Analyzer app. The first one shows a row with a criteria i.e. Price-to-earnings, and the value for that criteria i.e. 29.13x. The second one is the same but we'v added a rating code represented by a capital letter i.e. C. If we use .accessibilityElement(children: .combine), that code will work even if we update the UI like that. If we use .accessibilityElement() and therefore, we configure an accessibility label manually, we need to remember to update the accessibility label as we update the UI.

You may also find interesting...

When setting isAccessibilityElement to true, assistive tech like VoiceOver will stop looking for other accessible elements in that view hierarchy. So if we make a view accessible, its subviews, including buttons and labels won't be accessible.

Apple recommends in their guidelines a minimum tappable area size of 44x44 points for all controls. A lot of times this can be corrected in an app without changing how it looks, but making it objectively easier to interact with for everyone.

Guidelines from Apple: Begin with a verb that explains the results of the action. Avoid using the imperative form of a verb because that can make it sound like a command. Don’t include the action type. Don’t include the control. https://developer.apple.com/documentation/objectivec/nsobject-swift.class/accessibilityhint

Created in Swift with Ignite.

Supporting Swift for Swifts