accessibilitySpeechIPANotation is sometimes handy in English where a word is spelled the same but pronounced differently depending of the context. Some examples are: live, read... Or you may want to correct how VoiceOver pronounces your app's name!

Example shows how you can specify the correct pronunciation for the text “Most read” and for the word “Live” in the context of direct broadcasting, using the IPA notation. The code sets an accessibilityAttributeLabel to the UILabel (or UIView) with the string and a dictionary containing the accessibilitySpeechIPANotation attribute key and the “Most rēd” or “laɪv” values.

Example code in the image:

let liveNewsChannelView = UIView()
let attributedLabel = NSMutableAttributedString(string: "24 hour news channel. ")

attributedLabel.append(NSAttributedString(string: "Live",attributes: [.accessibilitySpeechIPANotation: "laɪv"]))

liveNewsChannelView.accessibilityAttributedLabel = attributedLabel

You may also find interesting...

An interesting speech attribute for attributed accessibility labels is accessibilitySpeechIPANotation that lets you specify how VoiceOver should pronounce a label with the International Phonetic Alphabet (IPA) notation. https://developer.apple.com/documentation/foundation/nsattributedstring/key/accessibilityspeechipanotation

If both screenChanged and layoutChanged notifications signal changes in the UI and allow you to move VoiceOver's focus somewhere else, what's the difference? To the user, screen changed plays a sound indicating them they got moved to a new screen.

When implementing a UISlider, it is a good idea to consider how much the slider value should change when swiping up/down to adjust it. It might not always make sense to do it in 10% increments, which is the default behaviour. Could be because the value at those intervals doesn't make sense, or feel random, or because it wouldn't provide the user with a fine enough control being able to go through the whole slider in just 10 swipes. It user will still be able to adjust the slider to any value by double tapping and holding and then moving the finger left or right, bypassing VoiceOver gestures. VoiceOver announces the new value as it changes.

Created in Swift with Ignite.

Supporting Swift for Swifts