Explore best practices for creating inclusive apps for users of Apple accessibility features and users from diverse backgrounds.

All subtopics

Post

Replies

Boosts

Views

Activity

VoiceOver needs to support CFBundleSpokenName
VoiceOver does not support the plist property CFBundleSpokenName. This is wrong and should be fixed. Ultimately the issue I am dealing with is that our app name is UWCU, and instead of VoiceOver pronouncing each letter, it tries to read this as a word and horribly butchers our organization's/app's name. Alternatives such as using U.W.C.U. and U W C U are not acceptable. @Apple, I know you're first response is going to be "no, it is working perfectly," but quite frankly you are wrong. I know you feel strongly about this, given your response in posts like this: https://forums.developer.apple.com/forums/thread/734545?answerId=760084022 HOWEVER, with iOS 18, your argument for "VoiceOver should read what's on the screen" doesn't hold water anymore. With iOS 18, you Apple have added a new feature that lets users customize their home screens and completely remove the name of apps. Here's your own guide: https://support.apple.com/guide/iphone/customize-apps-and-widgets-on-the-home-screen-iph385473442/ios Quoted from your guide: Make the icons bigger: Tap Large. (In large size, the names of the apps disappear.) With large icons + VoiceOver turned on, VoiceOver still reads the app name even though it has disappeared from the screen. So, your own argument "VoiceOver should read the text as it appears on the screen" is invalid, because there is NO text on the screen. If you can't tell, I'm pretty peeved about all this. There's a reason why screen readers support aria attributes to help deliver the right accessible experience. It's a simple ask for VoiceOver to do the same thing.
3
0
485
3w
I'm in trouble
I have pop-ups on the top row keys randomly that prevent me from typing. Since that I cannot answer comments in Youtube and Creator Apps. That kills my work process. I don't wanna use Beta any update anymore, because it stops me from producing anymore You guys killed me
0
0
163
Oct ’24
Add words to Voice Control
I want to create a utility to import a list of words to the Voice Control user custom vocabulary. Is there an API to do this? I noticed if you use the built-in export vocabulary functionality (Settings > Accessibility > Voice Control > ...) the file that gets exported is a plist document type. If there is no API to add words programmatically should I just create a utility that generates a plist file and import it using the built-in import vocabulary functionality (Settings > Accessibility > Voice Control > ...)?
3
0
209
Oct ’24
URL Schemes for Direct Access to Software Update Settings on iOS Devices (18.0.1)
Hello everyone :) For a project application we try to create a QR code that leads the user to the Software Update settings on iPhone after scanning to improve the accessibility for people who are not experienced in using smartphones. On iOS 18.0.1 I see that using App-prefs: opens the settings app which is a good starting point. Furthermore, using e.g. App-prefs:com.apple.MobileSMS directs the user to the Settings of the Messages app. But things like App-prefs:root=SoftwareUpdate don't work. That's why I wanted to kindly ask, if someone may have other ideas or knows what the exact URL might be for opening the Software Update settings or at least the General settings (App-prefs:root=General doesn't work). If anyone has insights or can share the exact URL scheme for this purpose, I would greatly appreciate it! Thank you so much!
2
0
289
Oct ’24
`accessibilityUserInputLabels` is ignored on `UIBarButtonItem`
accessibilityUserInputLabels is working fine with any view I tried this on. Meaning that the control can be toggled with the provided alternative names when using Voice Control. When setting this property on any UIBarButtonItem though, it seems Voice Control ignores the alternative names provided by setting accessibilityUserInputLabels. For comparison, accessibilityLabel works perfectly when set on UIBarButtonItem. Is anyone facing the same issue? Using Xcode 16.0 (16A242) on iOS 18
2
0
314
Oct ’24
Resetting the selected accessibility action on a button
I have a record button that either starts or stops a recording using the default action. When the user is recording, I want to add a custom action to discard the recording instead of saving it. That all works fine with the following code: if isRecording { recordButton.accessibilityCustomActions = [ .init(name: String(localized: "discard recording"), actionHandler: { [weak delegate] _ in delegate?.discardRecording() return true }) ] recordButton.accessibilityLabel = String(localized: "stop recording", comment: "accessibility label") } else { recordButton.accessibilityCustomActions = [] recordButton.accessibilityLabel = String(localized: "start recording", comment: "accessibility label") } The problem I have is that when a user chose "discard recording", it becomes the default selected action again the next time the user records, and instead of stopping and saving the recording, the user might accidentally discard the next one as well. How can I programmatically reset the selected action on this recordButton to the default action?
0
0
193
Oct ’24
AccessibilityUIServer 100% CPU on iOS 18
Hello, after installing iOS 18 on our smartphones we experience a dramatic CPU load of the thread "AccessibilityUIServer" after installing one of our apps. This results in a drastic battery drainage and heats up the iPhone very fast. Under previous iOS versions this was no problem. Do you have any ideas how this could happen?
1
0
152
Oct ’24