The issue described here in this stack overflow conversation is still an issue today when it comes to the read back of the last 4 digits in the phone numbers for North American numbers as minus.
Is there a solution other than overriding the accessibleLabel property?
Explore best practices for creating inclusive apps for users of Apple accessibility features and users from diverse backgrounds.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
I’m trying to set the accessibilityActivationPoint directly on a UITableViewCell so that VoiceOver activate on a specific button inside the cell. However, this approach doesn’t seem to work.
Instead, when I override the accessibilityActivationPoint property inside the UITableViewCell subclass and return the desired point, it works as expected.
Why doesn’t setting accessibilityActivationPoint directly on the cell work, but overriding it inside the cell does? Is there a recommended approach for handling this scenario?
The following approach works,
override var accessibilityActivationPoint: CGPoint {
get {
return convert(toggleSwitch.center, to: nil)
}
set{
super.accessibilityActivationPoint = newValue
}
}
but setting accessibility point directly not works
private func configureAccessibility() {
isAccessibilityElement = true
accessibilityLabel = titleLabel.text
accessibilityTraits = .toggleButton
accessibilityActivationPoint = self.convert(toggleSwitch.center, to: self)
accessibilityValue = toggleSwitch.accessibilityValue
}
This may sound like a bit of an odd question, but this was what I was told this morning by one of our Accessibility managers.
This past June at WWDC, I scheduled a lab session with Apple's accessibility folks for a review. I had the pleasure of working with Ryan who helped give the great VoiceOver Testing Talk from WWDC 2018. I believe I've worked with him before in the labs, but regardless, no matter who I meet with in the Accessibility Labs they always provide me with some new nugget of information that I learn, no matter how well versed I might think I am in Accessibility.
After the labs, I made all the changes that Ryan suggested and also told other developers on my team of what I was taught. In our app we provide various forms, and each field component that appears in the form has a header text which we apply a header trait to.
This allows for the use of a Header Rotor to quickly navigate between all the questions in the form, say if a user wants to return to a previous field etc. I even suggested we should take the time to provide a custom rotor that would allow users to navigate to fields that may be in an error state. If say the user submits the form, and the responses are validated, if 1 or multiple fields be in error we should have a rotor to allow the user to navigate directly to those fields. They may not be able to see the Red text / red outlines of those fields.
This morning, I was told that I needed to undo that. That our headerLabel properties should not be marked with the UIAccessibilityTrait.header trait.
When I stated that it makes navigation of the form much easier via the Headers Rotor, I was told by the Accessibility Manager this is not the case.
I have the MS Teams transcript in front of me, which reads as follows (give or take a few transcript errors)
So I went ahead and I just double checked with two of my friends, who are blind and for them on their end, they both said that they would not actually use that, and could add more complexity, because they have—in addition to being blind—but there's also mobility limitations. So they actually can't even use the Rotor at all. They only can use the swipes.
Does this make sense to anyone, because it doesn't to me? Thoughts on this?
Topic:
Accessibility & Inclusion
SubTopic:
General
Hello,
I’m in the process of enrolling my business (Carzo Rent A Car, Prishtine, Kosovo) in the Apple Developer Program, but I have been waiting for my D-U-N-S number to be issued.
I submitted the request to Dun & Bradstreet on July 28, 2025 (Case #9142648) and have only received a system-generated email with a tracking ID (#9086421). There has been no further update.
My questions are:
Is there a way for Apple to expedite or provisionally approve my enrollment while the D-U-N-S number is pending?
How long does Apple typically wait for D&B updates before the enrollment is affected?
Are there any alternative steps I can take to avoid further delays?
Thank you for your guidance.
Topic:
Accessibility & Inclusion
SubTopic:
General
AVPlayer has 3 visual accessibility issues with videos out of the box:
The contrast fails for the current time in the video
The contrast fails for the remaining time in the video
The hit area is too small for the time slider. The WCAG AA requirement is a minimum hit size of 24 x 24. The height of the hit area of the offending region is 8.
Is there a known fix for any of these?
This can be reproduced with this code in an app playground:
import SwiftUI
import AVKit
import UIKit
struct ContentView: View {
private let video = URL(string: "https://server15700.contentdm.oclc.org/dmwebservices/index.php?q=dmGetStreamingFile/p15700coll2/15.mp4/byte/json")!
@State private var player: AVPlayer?
var body: some View {
VStack {
VideoPlayerView(player: player)
.frame(maxWidth: .infinity, maxHeight: 200)
}
.task {
player = try? await loadPlayer(video: video)
}
}
}
private struct VideoPlayerView: UIViewControllerRepresentable {
let player: AVPlayer?
func makeUIViewController(context: Context) -> AVPlayerViewController {
let controller = AVPlayerViewController()
controller.player = player
controller.modalPresentationStyle = .overFullScreen
return controller
}
func updateUIViewController(_ uiViewController: AVPlayerViewController, context: Context) {
uiViewController.player = player
}
}
private func loadPlayer(video: URL) async throws -> AVPlayer {
let videoAsset = AVURLAsset(url: video)
let videoPlusSubtitles = AVMutableComposition()
try await videoPlusSubtitles.add(videoAsset, withMediaType: .video)
try await videoPlusSubtitles.add(videoAsset, withMediaType: .audio)
return await AVPlayer(playerItem: AVPlayerItem(asset: videoPlusSubtitles))
}
private extension AVMutableComposition {
func add(_ asset: AVAsset, withMediaType mediaType: AVMediaType) async throws {
let duration = try await asset.load(.duration)
try await asset.loadTracks(withMediaType: mediaType).first.map { track in
let newTrack = self.addMutableTrack(withMediaType: mediaType, preferredTrackID: kCMPersistentTrackID_Invalid)
let range = CMTimeRangeMake(start: .zero, duration: duration)
try newTrack?.insertTimeRange(range, of: track, at: .zero)
}
}
}
I have been working on a feature, where I have a List in SwiftUI with previous and next data loading, user can scroll up and down to load previous/next page data.
Recently, I faced one accessibility issue while testing voice-over, when user lands on the listing screen and swipe across the screen from navigation and when focus comes on list it should highlight the first item visible.
But when user swipes back:
Should it load the previous data and announce the previous item or it should go back to the navigation items?
If it loads the previous item, what if the user wants to go to the navigation to switch to other actions and vice-versa?
Did anyone come across this kind of issue? What can be the standard expected behavior in this case if list has both previous and next page scroll?
I different tried gestures https://support.apple.com/en-in/guide/iphone/iph3e2e2281/ios, but it isn't working
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!
Accessibility got broken after updated till XCode 16.1
There is a call to accessibilityLabel - it sets an a11y label for a title of a view.
This used to work (pronounced by VoiceOver) with XCode 15.4 + iOS 17.5.
Xcode 16.1 + iOS 18.1 + Physical device/ iOS SImulator - with Accessibility Inspector - no a11y label set.
Tried Xcode 16.2 beta 3 - the same result - accessibilityLabel does not work - a11y label is not set.
I am making an app that works on iOS 13 and above I wold like to know how can we open setting directly on a click of a button from our app
Topic:
Accessibility & Inclusion
SubTopic:
General
Is it possible to play certain sounds from a macOS app that remain at full volume when VoiceOver is speaking?
Here's some background:
I want to play sounds from my app (even when it's not in focus) to notify a VoiceOver user that an action is available (this action can be triggerred even when the app is not in focus; and is comfigurable by the user).
I tired using an NSSound for this, but VoiceOver ducks the audio of my sound when it is speaking.
Is there some way to avoid audio ducking for certain sounds? Or is there another, perhaps lower level, audio API that i can use to achieve this?
Hi i have an app built by Cordova and Vue.js, and IOS cannot recognize the new prompt, when the old prompt still exist, and in android it works good.
Topic:
Accessibility & Inclusion
SubTopic:
General
Same problem as everyone getting after IOS 18update.
Topic:
Accessibility & Inclusion
SubTopic:
General
Getting Robbed in the parking lot for wallet and iPhone. I needed a 2 Button shortcut to Disable Face ID iPhone Unlock. Preferably using the Camera Button and side button held for 2 seconds.
Topic:
Accessibility & Inclusion
SubTopic:
General
xss.txt
I thought Apple was all about inclusivity. Is this not harming their brand more than they’d realize?
Topic:
Accessibility & Inclusion
SubTopic:
General
After updating my iPhone to ios 18.2 it is unable to connect with my car which has ford sync 3.
I have tried all possibilities but no response.
can someone help?
regards
Kumar
Topic:
Accessibility & Inclusion
SubTopic:
General
I’m writing to understand how taxes are applied to our subscription revenue and to clarify a potential issue we’re facing.
For a ₹299 subscription:
Apple deducts a 30% commission, leaving us with ₹209.30.
After that, an additional tax of approximately 18% (₹36.11) is deducted by Apple, which reduces the amount further.
When we receive this ₹173.19 in our bank, we are required to pay 18% GST again on this amount in India.
This appears to result in us paying tax twice. Could you clarify why 18% tax is deducted by Apple, and if we are not required to pay it again, where can we see this adjustment on the GST portal?
Can you guys like probably make Visual Intelligence available for the action button on the iPhone 16e? It should be only for iPhones that use A18 and future gen apple chips.
Topic:
Accessibility & Inclusion
SubTopic:
General
SwiftUI provides the accessibilityCustomContent(_:_:) modifier to add additional accessibility information for an element. However, I couldn’t find a similar approach in UIKit.
Is there a way to achieve this in UIKit?
Settings
Accessibility > VoiceOver > Typing > Typing Feedback
Set Character and Words
General > Keyboard > Keyboards
Add Japanese - Kana
Use iOS18.0 ~ iOS18.2
Build with Xcode16.1 ~ 16.2
What happens?
When we input "あ" in UITextField with Japanese - Kana Keyboard, it up until now it was feedback as "a". However, it is no feedback now.
On UITextView, Typing Feedback working.
On iOS17, also working.
Topic:
Accessibility & Inclusion
SubTopic:
General