Here's a few examples where Apple seems to use the semanticGroup accessibilityContainerType, other than for the tab bar and toolbar, to serve for inspiration on when it might be useful in your own apps.

Three examples where Apple seems to be configuring the semanticGroup type to the accessibilityContainerType property of a container view in some of its Apps. It causes for VoiceOver to announce the accessibility label of the container, before what it would normally announce for an element, only when the focus moves from outside to inside the container. First example is the Messages app. The bar with the apps is called Apps. Second example is the Reminders app. The editing options bar is called Quick Actions. Third example is the camera app. The bar with extra camera controls that is hidden by default is called Camera Controls.

Reminder that this configuration causes for VoiceOver to announce the accessibility label of the container view, before what it would normally announce for an element, only when the focus moves from outside to inside the container.

You may also find interesting...

The equivalent of using a .semanticGroup accessibilityContainerType in UIKit, would be to use the .accessibilityElement(children: ) modifier with the .contain option in SwiftUI. Here's a refresher with some use-cases: https://x.com/dadederk/status/1558790851496742914

You should convey important information in multiple modes, not just color. If you are still required to do so, at the very least you should complement that info with other modes, like symbols, if the user requested differentiation without color.

@NSSpain has a great history of having amazing accessibility talks in their schedule! “Accessibility in the Real World”, by @Sommer: https://vimeo.com/235317172 “How to build an app for everyone”, by @NovallSwift: https://vimeo.com/362163043 The super fun "Choose your own SwiftUI adventure - 3 Accessibility", by @twostraws and @PinkerStraws: https://vimeo.com/481768105 And, of course, this year's great "Bas: My Accessibility Story", by @basthomas: https://vimeo.com/751176747

Created in Swift with Ignite.

Supporting Swift for Swifts