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

Voice over sound volume decrease
Hi, we encounter an issue while using voice over in our app. On a given page, voice over is running through the items but at some point (randomly) the volume of the voice over decreases dramatically. It is only possible to restore the original volume by killing the app and launch it again. It does not happen systematically and is pretty difficult to reproduce but it happens on a regular basis. No interaction occurs with other apps (music or navigation apps) and there is no interaction with bluetooth or other air play devices. The code does not involve any voice over changes. We are looking for any clue that can lead to the issue root cause. Thanks for the help !
1
0
333
Jul ’24
FaceTime background macOS 15 Beta
I'm just joining FaceTime with the background setting that I have been advocating for a long time. It is about the Accessibility Lens, which we want to change the background of FaceTime video calls. I want to make suggestions or comments on those features we would like to have. Is there somewhere we can have this forum to discuss specifically with the FaceTime ecosystem?
0
0
359
Jul ’24
AccessibilityUIServer has microphone locked
Just installed iOS 18 Beta 3. I am seeing my AccessibilityUIServer using the microphone and this is causing no notification sounds, inability to use Siri by voice and volume is grayed out. If I start to play anything with sound AccessibilityUIServer releases the microphone and I am able to use the app. Calls still work since AccessibilityUIServer will release and the phone will ring. Feed back ID is FB14241838.
12
9
4.4k
Jul ’24
Toolkit/API for Interacting with Active Editable Text Boxes on macO
I am developing an application that needs to interact with active editable text boxes on macOS, similar to how Grammarly functions. Specifically, my application needs to: Read and write text in the currently active editable text box where the keyboard input is directed. Move the writer cursor and mark text within the text box. Ideally, the solution should support cross-platform functionality, covering both macOS and Windows. Does anyone know of any toolkits, libraries, or APIs that can facilitate this kind of functionality on macOS?
1
0
439
Jul ’24
“Past”Text Keyboard Feature
After double tapping a text space. Allow to press and hold “Paste” to ase a pop up list of the last 5 text copies you’ve made. While still keeping the one “Paste” touch to the most recent. This we help when we accidentally copied or cut different text before pasting what we were saving to paste later.
1
0
451
Jul ’24
Developing Carplay App for fragrance system
Greetings, I am currently conceptualizing an application designed to interface with Carplay, enabling control over aftermarket automotive fragrance systems and ambient lighting within vehicles. Having perused your development guidelines, I am interested in understanding how my project might be classified within your framework. Specifically, I am exploring whether it would be appropriate to categorize this endeavor under the 'Driving Task' category, given its direct interaction with the vehicle environment. Your insights on this matter would be greatly appreciated. Best regards!
0
0
326
Jul ’24
Localization for multiple targets
I have one project where I have XYZ scheme and target. I have Localizable.string under XYZ target for localization. I want to create a ABC target (duplicate of XYZ) and set custom language support for it. Let's say I have english, french and german for XYZ, I want hindi, japanese and chinese for ABC. I did the below steps I went to Manage scheme and duplicated the XYZ (duplicate scheme = ABC). I added new localization file only for ABC (LocalizationForABC.string) and made sure those reflect in File Inspector -> Target (only ABC selected) and also checked in Build Phases -> Copy Bundle Resources (LocalizationABC exists). When I run the ABC target under let's say french, it works fine but when I build the project ABC, and remove french from XYZ, ABC is broken and it only runs in english. Am I missing something here ?
3
0
574
Jul ’24
Battery Health draining fast
My Iphone’s Battery health Was 100% till 4 months when I bought it after updating to ios 17.5 its draining very very quickly it was 100% when i Updated my iphone and after that in 4 days 1% BH drops,updated my iphone on 21th Of may and after 1 month its 92%.Any solution On this?
1
0
345
Jul ’24
Cannot activate FaceTime and iMessage service
I tried to activate FaceTime and iMessage on my iPhone 15 Pro after update to iOS 18. But i could not activate it to my service provider phone number and its activated to my iCloud mail id. Also tried everything mention on Apple Support page. No luck yet. I contact my service provider too. They asked to clerify from Apple.
1
0
388
Jun ’24
Xcode Accessibility audit in UI Tests gives less than stellar results
I have added a UI test that uses the newish app.performAccessibilityAudit() on each of the screens in my SwiftUI app. I get a handful of test failures for various accessibility issues. Some of them are related to iOS issues (like the "legal" button in a map view doesn't have a big enough tappable are; and, I think, there is a contrast issue with selected tabs in a tab bar, or maybe it is a false positive). Two of the error type I get are around Text elements that use default font styles (like headline) but that apparently get clipped at times and apparently "Dynamic Type font sizes are unsupported". For some of the errors it supplies a screenshot of the whole screen along with an image of the element that is triggering the error. For these text errors it only provides the overall image. After looking at the video I saw that part of the test runs the text size all the way up and I could see that at the largest size or two the text was getting cut off despite using default settings for the frames on all the Text elements. After a bit of trial and error I managed to get the text to wrap properly even at the largest of sizes and most of the related errors went away running on an iPhone simulator. I switched to an iPad simulator and the errors re-appeared even though the video doesn't show the text getting clipped. Does anyone have any tips for actually fixing these issues? Or am I in false positive land here? Also, is there any way to get more specific info out of the test failures? Looking at the entire screen and trying to guess where the issue is kinda sucks.
0
2
696
Jun ’24
iOS 18 beta bug(Dictation)
About half the time or more when dictating text, if dictation mode is manually deactivated immediately when done speaking the last word is duplicated. For example, if you dictate a text message (without using Siri) using the microphone button on the keyboard and are dictating a text message to someone by saying, ‘I’m on my way, be there soon.’ and hit send or stop the dictation as soon as you are done talking the dictated text will read. ‘I’m on my way, Be there soon soon.’ -currently running iOS 18, beta 1 and I’ve experienced this multiple times.
3
1
817
Jun ’24
Caller does not have kTCCServiceVoiceBanking access to personal voices. No speech will be generated
Hello, I'm trying to leverage PersonalVoice to read a phrase in my iOS application. My implementation works correctly on an iPhone 15, but does not work when I run the iOS application on an M2 Macbook Air. Here are some snippets from my implementation // This is how I request Personal Voice AVSpeechSynthesizer.requestPersonalVoiceAuthorization() { status in if status == .authorized { var personalVoices = AVSpeechSynthesisVoice.speechVoices().filter { $0.voiceTraits.contains(.isPersonalVoice) } } } // this is how I'm attempting to read let utterance = AVSpeechUtterance(string:textToRead) if let voice = personalVoices.first { utterance.voice = voice } var synthesizer = AVSpeechSynthesizer() synthesizer.speak(utterance) I get the following error messages when I try this: Cannot use AVSpeechSynthesizerBufferCallback with Personal Voices, defaulting to output channel. Caller does not have kTCCServiceVoiceBanking access to personal voices. No speech will be generated Voice not allowed to render speech! Will not set up synthesizer. Bailing now Any suggestions on how to mitigate this issue?
0
0
656
Jun ’24
(After upgrading to iOS 17.5.1) MFi hearing devices appeared to be paired, but app is unable to resolve the connection to the peripheral
Hey Apple, We (our customer support teams) have received feedback from our customers complaining their hearing devices (hearing aids) appear to be connected to MFi and OS controls are working, but audio stream isn't working, and the app is unable to resolve a connection to the device via the CBCentralManager.retrieveConnectedPeripherals(withServices:) The issues appear to disappear once the user unpairs and re-pair the hearing devices in the Accessibility > Hearing Devices options (they might also need to uninstall and reinstall the app as it is getting stuck due to invalid state), but we are unable to replicate this issue on our environments given it is intermittent and once we have upgraded a device to iOS 17.5.1, we don't have a mechanism to revert to an earlier version of it. So far, we have received about 30 reports for the past 2 weeks. Most of our customers complain about the app not connecting to the devices, but the fact the audio stream is not happening could hint to a deeper problem than our app. Are you guys aware of a problem affecting MFi hearing devices restoring after the OS upgrade process?
2
1
841
Jun ’24
Seeking Best Practices for Enhancing Accessibility in iOS Applications
Hello everyone, I'm currently working on an iOS application and I want to ensure it is as accessible as possible for all users, including those with disabilities. While I have a basic understanding of iOS accessibility features, I'm looking to deepen my knowledge and apply best practices comprehensively. Specifically, I would like to know: VoiceOver Optimization: What are the best practices for ensuring all UI elements are properly labeled and navigable with VoiceOver? Color Contrast and Visual Design: How can I effectively check and adjust color contrast ratios to accommodate users with visual impairments? Dynamic Type and Font Sizes:What are the recommended approaches for supporting Dynamic Type, and how can I ensure a consistent and readable layout across different text sizes? Accessibility in Custom UI Elements: How can I make custom controls (e.g., custom buttons, sliders) accessible, especially when they do not follow standard UIKit components? Testing Tools and Techniques: Which tools and techniques are most effective for QA to test accessibility on iOS? Thank you in advance for your insights and advice. Best regards, Ale
1
1
615
Jun ’24
Eye Tracking as a General API Feature for iPadOS 18+?
I'd like to use the eye tracking feature in the latest iPadOS 18 update as more than an accessibility feature. i.e. another input modality that can be detected by event + enum checks similar to how we can detect and distinguish between touches and Apple pencil inputs. This might make it a lot easier to control and interact with iPad-based AR experiences that involve walking around, regardless of whether eye-tracking is enabled for accessibility. When walking, it's challenging to hold the device and interact with the screen with touch or pencil at all. Eye tracking + speech as input modalities could assist here. Also, this would help us create non-immersive AR experiences that parallel visionOS experiences that use eye tracking. I propose an API option for enabling eye-tracking (and an optional calibration dialogue within-app), as well as a specific UIControl class that simply detect when the eye looks at the control using the standard (begin/changed/end) events. My specific use case is that I'd like to treat eye-tracking-enabled UI elements or game objects differently depending on whether something is looked at with the eyes. For example, to select game objects while using speech recognition, suppose we have 4 buttons with the same name in 4 corners of the screen. Call them "corner" buttons. If I have my proposed invisible UI element for gaze detection, I can create 4 large rectangular regions on the screen. Then if the user says "select the corner" the system could parse this command and disambiguate between the 4 corners by checking which of the rectangular regions I'm currently looking at. (Note: the idea would be to make the gaze regions rather large to compensate for error.) The above is just a simple example, but the advantage over other methods like dwell is that it could be a lot faster. Another simple example: Using the same rectangular regions, instead of speech input, I could hold a button placed in just one spot on the screen, and look around the screen with my gaze to produce a laser beam for some kind of game, or draw curves (that I might smooth-out to reduce inaccuracy). OR maybe someone who does not have their hands available. This would require us to have the ability to get the coordinates of the eye gaze, but otherwise the other approach of just opting to trigger uicontrol elements might work for coarse selection. Would other developers find this useful as well? I'd like to propose this feature in feedback assistant, but I'm also opening-up a little discussion if by chance someone sees this. In short, I propose: a formal eye-tracking API for iPadOS 18+ that allows for turning on/off the tracking within the app, with the necessary user permissions the API should produce begin/changed/ended events similar to the existing events in UIKit, including screen coordinates. There should be a way to identify that an event came from eye-tracking. alternatively, we should have at minimum an invisible UIControl subclass that can detect when the eyes enter/leave the region.
0
6
1.1k
Jun ’24
Disabling New Hand Gesture Features in Vision Pro App on visionOS 2
Question: Hi everyone, I'm developing a Vision Pro app using the latest visionOS 2, and I've encountered some issues with the new hand gestures introduced in this update. My app is designed to display a UI element when a user's palm is detected. However, the new hand gestures for navigating key functions like Home View, Control Center, and adjusting the volume are interfering with my app's functionality. What I'm Trying to Achieve Detect when a user's palm is open and display a UI element. Ensure that my app's custom hand gestures are not disturbed by the new default gestures in visionOS 2. Problem The new hand gestures in visionOS 2 (such as those for Home View, Control Center, and volume adjustment) are activating while my app is open, causing disruptions to my app's functionality. I want to disable these system-level gestures when my app is running.
3
2
1.2k
Jun ’24