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...

If you have any web views in your app (Terms and Conditions and Privacy Policy, I'm looking at you), you can also support Dynamic Type for them. You can set an Apple system font with the same styles available for native development in your CSS.

You can create your own accessibility elements from scratch. One use-case for doing that is when you do some custom drawing instead of building your UI using or relying on UIKit components. A circular progress bar, could be an example.

Since iOS 14, you can get a human readable localised name for a UIColor, with a very useful property called accessibilityName, that you can use in accessibility attributes like labels or values. How cool is that? https://developer.apple.com/documentation/uikit/uicolor/accessibilityname

Created in Swift with Ignite.

Supporting Swift for Swifts