It can help to alert the user of something that happened, in a part of the screen that is not currently on focus, and that is not important enough to disrupt the user by moving VoiceOver’s focus to a different place.
It can be useful to announce certain messages like errors or long running tasks that have finished (i.e. a download that finished) or with custom notifications and snack bars.
You may also find interesting...
Do you know when a UI element is greyed out to show that it is disabled? Yes, there is an accessibility trait for that too: .notEnabled. VoiceOver will say “dimmed” after its accessibility label and Voice Control and Switch Control will skip it.

Too much data can overwhelm users. Very little is an incomplete experience. It is hard to find a balance on verbosity and the users may have different preferences. To help with this issue, the AXCustomContent APIs let you mark data as optional.

A common example where you need to manually configure the button accessibility trait is for some table/collection view cells. These tend to be “buttons” that perform an action, like playing music, or bring the user to a different screen.