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

All subtopics
Posts under Accessibility & Inclusion topic

Post

Replies

Boosts

Views

Activity

iOS 26 regression: `DeviceActivityEvent`: `eventDidReachThreshold` called immediately (instead of waiting till threshold is reached)
Hello Albert! I am experiencing some strange bugs around DeviceActivityEvents (part of the DeviceActivity framework) on iOS 26 / iOS 26.1 / iOS 26.2 beta: When creating a DeviceActivityEvent we can assign a threshold and applicationTokens. The idea is, that after the user has spent said threshold on said apps, eventDidReachThreshold() is called. The property includesPastActivity is set to false. On iOS 26 however, it happens (quite reliably after updating to a new beta seed) quite often that eventDidReachThreshold() is called immediately (after a couple of seconds) instead of waiting for the threshold to be met. Is anyone else seeing similar issues on iOS 26 / iOS 26.1 / iOS 26.2 beta? Only workaround I have found is to ask users to revoke and re-grant Screen Time permissions. This only holds for about two weeks though or at most until the next iOS 26 beta update is installed, so it is not a permanent solution unfortunately. Feedback (incl. sysdiagnoses and sample project) is filed under: FB18061981 FB18927456 One of our users has filed their own feedback request as well: FB20817853 Thanks a lot for any help on this!
28
5
12k
1d
Reply to 4. 3 Design: Spam????
您好,我们是中国的一家软件开发公司。我们应用程序的底层框架基于美国开源社区的 XMPP 协议框架。它是一个国际开源项目,许多中国软件公司以开源框架为基础,在美国开源社区框架之上开发 UI 和替换功能。但是当我们需要将应用上传到应用商店时,会收到提示(拒绝 4.3A 应用垃圾邮件),因为中国目前没有独立开发这个框架的能力。因此,我们不得不承认,我们的 app 使用了美国开源社区的框架,因为中国的很多其他公司也都使用了美国开源社区的框架。这导致我们在将应用程序上传到应用商店时出现提示 (reject 4.3A application spam),因为其他公司在将其上传到应用商店时也使用相同的底层开源框架。这会导致我们公司在将此应用程序上传到应用商店时收到提示(拒绝 4.3A 应用程序垃圾邮件)。我们公司在这个 App 上花费了大量的精力和金钱,如果不允许中国公司上传到 App Store,就会被拒绝。使用来自美国的开源框架,这导致很多中国公司在后期无法使用美国的开源框架作为开发的基础。我们恳请贵公司为中国的小企业提供指导,并就我们未来的发展提供建议。谢谢。
1
0
2.7k
6d
iPad app terminated by watchdog (0x8BADF00D) during navigation transition — only with AssistiveTouch enabled (iPadOS 26)
Our app is being killed by the watchdog on iPadOS 26 (iPad Pro 11, 3rd gen) when navigating between tabs after using search. The crash only occurs when AssistiveTouch is enabled — disabling it prevents the issue entirely. The crash stack shows the main thread blocked in CoreUI vector glyph rasterization (CUINamedVectorGlyph _layerNamesForRenderingMode:inRendition:) triggered during a UINavigationController transition while the keyboard is being dismissed: UINavigationController _startCustomTransition → UIKeyboardSceneDelegate _restoreInputViewsWithId → UITextField resignFirstResponder → SwiftUI ViewGraphRootValueUpdater.render → UIButton layoutSubviews → UIImageView _setImage → CUINamedVectorGlyph _layerNamesForRenderingMode:inRendition: The termination reason: FRONTBOARD domain:10 code:0x8BADF00D "Failed to terminate gracefully after 5.0s" WatchdogEvent: process-exit WatchdogVisibility: Foreground Key observations: Only reproduces with AssistiveTouch enabled iPad Pro 11 (3rd gen), iPadOS 26 Our code is not on the crashing thread — it's entirely UIKit/CoreUI/SwiftUI framework code Similar to issues reported in thread/808808 (https://developer.apple.com/forums/thread/808808) and dotnet/maui#32365 (https://github.com/dotnet/maui/issues/32365) Is this a known issue with AssistiveTouch + UINavigationController transitions on iPadOS 26? Is there a recommended workaround?
1
0
1.6k
6d
Enhancing age-appropriate experiences
With the declining literacy rates I think it would be incredibly valuable for apple to implement a separate keyboard experience for minors. One without auto or predictive text, swipe to text, or even potentially also voice memos. These are all very convenient features that I think could unfortunately contribute or even enable the literacy crisis as more and more children grow up and rely on technology. I also think bringing back the ‘look up’ tool on highlighted text into the main options would support and encourage more education (or even adding a thesaurus option as well) From: A Gen Z adult who grew up learning how to spell at the same time I learned how to text. Without relying on all of the convenience features that in turn can remove the mental friction that learning to fix your mistakes provides, my iPhone was teaching me how to spell with simple red lines that required me to interact with my spelling in order to correct my mistakes. Note: Autocorrect was still a feature at the time however was often turned off by most people because of text slang culture which coincidentally helped create more intentional spell check interactions. I believe the decision to turn off autocorrect should be considered a more conscious responsibility so it should not necessarily be left up to a child to decide for themselves.
1
0
1k
1w
Disable sleep/wake when in Autonomous Single App Mode (ASAM)
If a user enables/disables Guided Access, they can modify the session settings to disable the top (sleep/wake) button. In Single App Mode (SAM), there is a payload option for disabling the sleep/wake button via Mobile Device Management (MDM). In Autonomous Single App Mode (ASAM), there doesn't appear to be any way to disable the top button. ASAM does not honor the Guided Access sessions settings, and there is no payload option in the MDM. This is a glaring issue especially when ASAM is marketed as the solution for apps in a medical setting where the app is trading hands from a medical professional to a patient. Our app is used during a lengthy procedure and does not function properly if the patient puts the iPad to sleep. We're stuck asking our medical professionals to put the iPad in Guided Access, but the user experience is clunky and would be much improved by implementing ASAM. Is there some little-known API for disabling the sleep/wake button during ASAM that I'm just missing?
2
3
3.5k
1w
iOS 26.6: Guided Access becomes unavailable after disabling and re-enabling on iPhone 15
Device iPhone 15 iOS Versions iOS 26.5 iOS 26.6 Summary: I found a reproducible issue with Guided Access on my iPhone 15. After disabling Guided Access, it cannot be enabled again for approximately 30–60 minutes. The problem exists on both iOS 26.5 and iOS 26.6. Steps to Reproduce: Enable Guided Access. Use Guided Access for approximately 5–10 minutes. Disable Guided Access. Wait 1–2 minutes. Try enabling Guided Access again. Expected Result: Guided Access should enable immediately every time. Actual Result Instead of enabling, the phone displays: "Guided Access Unavailable" After this message appears, Guided Access cannot be enabled again. I must wait approximately 30–60 minutes before the feature becomes available again. Frequency 100% I can reproduce this every time using the steps above. Troubleshooting Already Tried Restarted iPhone. Force restarted iPhone. Turned Guided Access off and on. Updated from iOS 26.5 to iOS 26.6. The issue still occurs. Questions: Can anyone reproduce this on iPhone 15 or other iPhone models running iOS 26.5 or iOS 26.6? Has anyone found a workaround?
1
0
853
1w
Is there a recommended WCAG checklist for native macOS and iOS apps?
I'm working on improving accessibility in a native macOS app and going through WCAG, but with so many success criteria it's hard to know where to focus for native Apple platform apps. 1. Does Apple recommend a specific subset or checklist of WCAG requirements for macOS and iOS? 2. If not, which criteria are generally considered essential, and how do developers typically validate them using Apple's accessibility tools and assistive technologies? I'm looking for a prioritized list of criteria that actually apply to native apps, rather than trying to implement every WCAG criterion individually.
3
0
792
1w
Opening specific Accessibility settings with a deeplink?
Heya! is there anyway to allow a user to open an accessibility setting from an iOS app? As currently you kinda have to explain how to enable it on your device and honestly thats kinda completely against how accessibility ux should work as it as it requires and expects a user to read+understand something they might as well can't because of accessibility issues in the first place and thus basically punishing a user for it. I tested this with some users and asking them to go trough 3-5 menu's with overwhelming settings is to complex and most give up, thus directing them would solve that problem.
3
1
2.1k
3w
Best practices for iOS Full Keyboard Access navigation?
Hi 👋, I’m working on improving Full Keyboard Access support in an iOS app and would love to hear about your experience. When developing for keyboard navigation, what approach do you usually take for navigating between UI elements? Do you mainly use Tab/Ctrl+Tab, arrow keys, or a combination of both? I’ve already watched some WWDC sessions and Apple's docs on this topic: https://developer.apple.com/design/human-interface-guidelines/keyboards https://developer.apple.com/videos/play/wwdc2021/10120/ https://developer.apple.com/videos/play/wwdc2021/10260/ https://developer.apple.com/documentation/UIKit/navigating-an-app-s-user-interface-using-a-keyboard However, I’d appreciate any recommendations for useful resources, documentation, or things to be aware of when implementing keyboard accessibility. :🙏
0
0
623
4w
Proposing Expressive Siri Offload via Private Cloud Compute (PCC) for 8GB Devices (Feedback ID: FB23178983)
Hi everyone, With the initial rollout of the iOS 27 Beta, the advanced configuration sliders for the new, highly expressive Siri voice models are currently hidden/disabled on devices operating under an 8GB RAM threshold. While the local AFM 3 Core Advanced engine is memory-gated to 12GB+ hardware due to local footprint constraints, this creates a significant barrier for users who rely on next-generation vocal expressivity and fluid dictation features for accessibility. To address this, I have filed a formal feature request (FB23178983) asking Apple to route the expressive Siri framework through Private Cloud Compute (PCC) on 8GB devices (like the iPhone 15 Pro or base iPhone 16 models). By utilizing server-side rendering over secure, stateless cloud nodes, Apple could easily deliver these vital accessibility configurations without exhausting the local 8GB memory footprint. I’m curious if other accessibility testers and auditors on this board are looking for this exact routing path? If you or your users rely on advanced speech synthesis features and are currently locked out by the local RAM gate, please consider filing a duplicate request or adding your diagnostic logs to FB23178983 to help increase visibility with the Core Accessibility and Software Architecture triage teams. Looking forward to hearing your thoughts and experiences with the current voice-indexing behaviors on 8GB hardware!
1
0
1.2k
Jul ’26
Feature Request: Native Acapela Voice Library Integration & Cross-Pipeline Voice Sharing:
Feature Request: Native Acapela Voice Library Integration & Cross-Pipeline Voice Sharing Associated Feedback Feedback Assistant Ticket: FB23666342 1. The Core Proposal On behalf of the assistive technology and screen-reader community, I am requesting the native system-level integration of the comprehensive Acapela Voice Library into iOS and macOS. This library should be added as a native synthesizer tier alongside existing options like Eloquence. Additionally, we request cross-pipeline voice compatibility, allowing the Siri assistant to utilize configured VoiceOver voice assets, and allowing VoiceOver to utilize Expressive Siri neural models. 2. Structural UI Layout Concept To maintain system cleanliness while maximizing user choice, we propose grouping the Acapela catalog exactly like the current native Eloquence implementation: A main, expandable heading titled Acapela inside the Speech rotor settings. Under this heading, voices should be strictly categorized by global regional dialects (including English U.S., English UK, Australia, India, Scotland, and all other languages offered to AT vendors). This deployment must include all specialized character profiles (such as the Little Creature variant) and their pediatric/child voices catalog. 3. Addressing Ear Fatigue and Equity While parametric synthesizers are excellent for high-speed text scanning, extended multi-hour document audits cause severe cognitive ear fatigue due to compressed, robotic waveforms. Integrating the full Acapela catalog—including both 22kHz HQ (High Quality) profiles for natural reading stamina and 22kHz CO (Colibri/Compact) profiles for rapid responsiveness—allows blind and low-vision power users to pick their preferred acoustic texture. Natively licensing this library eliminates the unfair financial barrier of third-party lifetime licensing fees, creating true out-of-the-box system equity. If you want to check out my post on expressive Siri, see below. Link: https://developer.apple.com/forums/thread/834920
0
0
507
Jul ’26
Hiding bracketed Braille Unicode characters when using Braille Dots Pattern - liblouis iOS Braille table on iPhone with Braille Displays via bluetooth on Safari
I have a question about rendering Braille Unicode patterns via VoiceOver on iPhone connected via Bluetooth with Braille displays. I’m developing a web app (users access via Safari) that uses raw Braille Unicode characters rather than using 8-dot, UEB contracted or uncontracted, because I want the characters to render the exact dots regardless of which braille table the user has theirs set too. My question is, can I hide the (bracketing?) characters [⣇ (1-2-3-7-8) and ⣸ (4-5-6-7-8)] that bracket Braille Unicode character passages? I find them unseemly from the perspective of the user, who may or may not be especially technologically savvy. Any suggestions for work arounds will be appreciated.
0
0
516
Jul ’26
Accessibility Feature Suggestion - Bring Back The Home Bar!!
Hi there, I am a day-to-day user of Apple Devices, whether it’s my iPhone, my iPad or Apple Watch. I originally suggested this feature to the Apple Support team, and through the Product Feedback site, back in September 2025 when iOS 26 and iPadOS 26 launched. All I want is a toggle option within the Accessibility settings to display the home bar permanently. This isn’t exactly much to ask for, and I am still waiting. Please help me! Thank you
0
0
736
Jul ’26
Full Keyboard Access support for custom MKAnnotationView in MKMapView
We’re working on improving the accessibility of a MKMapView that displays custom MKAnnotationView instances. Our implementation is fully accessible with VoiceOver: The custom annotation views expose the correct accessibility information. Users can navigate between annotations using custom accessibility rotors. The overall VoiceOver experience works as expected. However, we’re unable to make the custom MKAnnotationView instances accessible through Full Keyboard Access (FKA). Despite configuring the annotation views as accessibility elements and experimenting with focus-related APIs, the annotations never become reachable through keyboard navigation. They appear to be skipped entirely by the FKA focus system. Is there a supported way to make custom MKAnnotationView instances participate in Full Keyboard Access navigation? If this scenario is currently unsupported, is there a recommended approach or any plans to expose public APIs that would allow developers to provide a keyboard-accessible experience for custom annotations in MKMapView? Any guidance would be greatly appreciated.
4
0
773
Jul ’26
Accessibility Improvement Request: Native iOS NFC Scanning Modal Customisation
Hello I am a Product Designer at the Commonwealth Bank of Australia (CBA). We recently launched a feature enabling customers to verify their identity by scanning their passport's biometric chip via NFC. While our in-app flow is highly optimised, the core user experience relies heavily on the native iOS NFC scanning modal (NFCTagReaderSession / NFCNDEFReaderSession). After conducting extensive user testing, we found that the current native UI consistently causes user confusion, friction, and avoidable drop-offs. Because developer customisation is currently limited strictly to the body copy string, we are unable to resolve these critical UX and accessibility issues ourselves. Below are three specific areas where the native NFC modal is performing below expectations, along with proposed solutions. Dynamic Heading States The Problem: The modal heading is hardcoded to "Ready to Scan" and remains static throughout the entire lifecycle. It does not update when scanning begins, when scanning completes, or when an error occurs. Showing "Ready to Scan" alongside a loading state or a success checkmark is logically contradictory and confuses users. The Impact: Users are left uncertain if the device is actively reading, finished, or waiting for input. Proposed Solution: Allow developers to dynamically update the header text via the API based on session states (e.g., Ready to Scan, Scanning..., Hold Still, Scan Complete). Alternatively, implement native, automated heading changes that correspond to the actual hardware state. Accessibility & Typography (Body Copy Legibility) The Problem: The customisable body text underneath the main heading uses a font size that is far too small. The Impact: During user testing, the vast majority of participants completely missed or ignored this text. Even standard users struggled to read it, and it poses a severe barrier for users with visual impairments. Since this is the only text developers can control to give context-specific instructions, its lack of legibility breaks the experience. Proposed Solution: Increase the default font size of the body text to meet standard iOS Human Interface Guidelines (HIG) for legibility, or respect the user's Dynamic Type settings within the modal template. Active Scanning Animation / State Indicator The Problem: The native looping animation shows a phone tilting toward a reader. While appropriate for the initiation state, this animation does not change once active data transfer begins. The Impact: When combined with the static "Ready to Scan" heading, users have zero visual feedback that a scan is actively in progress. They frequently move the phone away too early, resulting in aborted scans and error loops. Proposed Solution: Introduce a distinct visual state indicator once scanning starts—such as a progress bar, a loading spinner, or an altered animation—to signal that scanning is underway. The current restrictions on the native NFC modal limit our ability to deliver an accessible, seamless experience for millions of users who rely on identity verification. Unlocking greater UI customisation for developers or updating the native template to be more dynamic would significantly elevate the UX for all apps leveraging CoreNFC. Keen to hear back on any upcoming changes. Thank you!
3
0
697
Jul ’26
Is there any API to detect Voice Control status in SwiftUI on iOS
I'm building an iOS app in SwiftUI and need to adapt my UI when Voice Control is active — specifically to show labels on custom gesture-driven controls so they're accessible via Voice Control commands. I've checked UIAccessibility and can find notifications and properties for VoiceOver (isVoiceOverRunning), Switch Control (isSwitchControlRunning), and AssistiveTouch (isAssistiveTouchRunning), but I can't find any equivalent for Voice Control. UIAccessibility.isVoiceControlRunning and voiceControlStatusDidChangeNotification appear to exist on macOS (AXIsProcessTrustedWithOptions) but not on iOS. Questions: Is there a public iOS API to detect whether Voice Control is currently active — either a UIAccessibility property, notification, or SwiftUI environment value? If not, is the recommended approach to use UIAccessibility.isGuidedAccessEnabled as a proxy, or something else entirely? Is there a private entitlement or capability that unlocks this detection for App Store apps? What I've already tried: Checking AccessibilityFeatures environment values in SwiftUI (@Environment(.accessibilityReduceMotion) etc.) Thanks!
2
4
1.3k
Jul ’26
Unable to Accept Invite
I am getting this issue when trying to accept an invite to a new test version of our app. ****Unable to Accept invite This invitation cannot be accepted because your Apple Account, xxxxxxxx.me.com, has already been associated to this app.**** Can you help please?
15
13
7.9k
Jun ’26
Nearby Interactions, wih camera assistance
I have an app that uses nearby with a custom accessory. works great on iPhone 11-13, starting with iPhone 14, one must use ARkit to get angles we have two problems ARkit is light sensitive, and we do not control the lighting where this app would run.. the 11-13 action works great even in the dark. (our users are blind, this is an accessibility app) ARkit wants to be foreground, but our uses cannot see it, and we have a voice oriented UI that provides navigation instructions.. IF ARkit is foreground, our app doesn't work. with iPhone 15 ProMax, on IOS 18, I got an error, access denied. (not permission denied) now that I am on IOS 26.. bt scan doesn't happen also fails same way on iPhone 17 on IOS26, can't callback now as release signing is no longer done this same code works ok on iOS 17.1 on iPhone 12. Info.plist here info.txt if(SearchedServices == [] ){ services = [TransferService.serviceUUID,QorvoNIService.serviceUUID] } logger.info( "scannerready, starting scan for peripherals \(services) and devices \(IDs)") filteredIDs=IDs; scanning=true; centralManager.scanForPeripherals(withServices: services, options: [CBCentralManagerScanOptionAllowDuplicatesKey: true]) the calling code dataChannel.autoConnect=autoConnect; dataChannel.start(x,ids) // datachannel.start is above self.scanning = true; return "scanning started"; ... log output services from js = and devices= 5FE04CBB services in implementation = bluetooth ready, starting scan for peripherals [] and devices ["5FE04CBB"] scannerready, starting scan for peripherals [6E400001-B5A3-F393-E0A9-E50E24DCCA9E, 2E938FD0-6A61-11ED-A1EB-0242AC120002] and devices ["5FE04CBB"] ⚡️ TO JS {"value":"scanning started"}
6
2
4.1k
Jun ’26
iOS 26 regression: `DeviceActivityEvent`: `eventDidReachThreshold` called immediately (instead of waiting till threshold is reached)
Hello Albert! I am experiencing some strange bugs around DeviceActivityEvents (part of the DeviceActivity framework) on iOS 26 / iOS 26.1 / iOS 26.2 beta: When creating a DeviceActivityEvent we can assign a threshold and applicationTokens. The idea is, that after the user has spent said threshold on said apps, eventDidReachThreshold() is called. The property includesPastActivity is set to false. On iOS 26 however, it happens (quite reliably after updating to a new beta seed) quite often that eventDidReachThreshold() is called immediately (after a couple of seconds) instead of waiting for the threshold to be met. Is anyone else seeing similar issues on iOS 26 / iOS 26.1 / iOS 26.2 beta? Only workaround I have found is to ask users to revoke and re-grant Screen Time permissions. This only holds for about two weeks though or at most until the next iOS 26 beta update is installed, so it is not a permanent solution unfortunately. Feedback (incl. sysdiagnoses and sample project) is filed under: FB18061981 FB18927456 One of our users has filed their own feedback request as well: FB20817853 Thanks a lot for any help on this!
Replies
28
Boosts
5
Views
12k
Activity
1d
Reply to 4. 3 Design: Spam????
您好,我们是中国的一家软件开发公司。我们应用程序的底层框架基于美国开源社区的 XMPP 协议框架。它是一个国际开源项目,许多中国软件公司以开源框架为基础,在美国开源社区框架之上开发 UI 和替换功能。但是当我们需要将应用上传到应用商店时,会收到提示(拒绝 4.3A 应用垃圾邮件),因为中国目前没有独立开发这个框架的能力。因此,我们不得不承认,我们的 app 使用了美国开源社区的框架,因为中国的很多其他公司也都使用了美国开源社区的框架。这导致我们在将应用程序上传到应用商店时出现提示 (reject 4.3A application spam),因为其他公司在将其上传到应用商店时也使用相同的底层开源框架。这会导致我们公司在将此应用程序上传到应用商店时收到提示(拒绝 4.3A 应用程序垃圾邮件)。我们公司在这个 App 上花费了大量的精力和金钱,如果不允许中国公司上传到 App Store,就会被拒绝。使用来自美国的开源框架,这导致很多中国公司在后期无法使用美国的开源框架作为开发的基础。我们恳请贵公司为中国的小企业提供指导,并就我们未来的发展提供建议。谢谢。
Replies
1
Boosts
0
Views
2.7k
Activity
6d
iPad app terminated by watchdog (0x8BADF00D) during navigation transition — only with AssistiveTouch enabled (iPadOS 26)
Our app is being killed by the watchdog on iPadOS 26 (iPad Pro 11, 3rd gen) when navigating between tabs after using search. The crash only occurs when AssistiveTouch is enabled — disabling it prevents the issue entirely. The crash stack shows the main thread blocked in CoreUI vector glyph rasterization (CUINamedVectorGlyph _layerNamesForRenderingMode:inRendition:) triggered during a UINavigationController transition while the keyboard is being dismissed: UINavigationController _startCustomTransition → UIKeyboardSceneDelegate _restoreInputViewsWithId → UITextField resignFirstResponder → SwiftUI ViewGraphRootValueUpdater.render → UIButton layoutSubviews → UIImageView _setImage → CUINamedVectorGlyph _layerNamesForRenderingMode:inRendition: The termination reason: FRONTBOARD domain:10 code:0x8BADF00D "Failed to terminate gracefully after 5.0s" WatchdogEvent: process-exit WatchdogVisibility: Foreground Key observations: Only reproduces with AssistiveTouch enabled iPad Pro 11 (3rd gen), iPadOS 26 Our code is not on the crashing thread — it's entirely UIKit/CoreUI/SwiftUI framework code Similar to issues reported in thread/808808 (https://developer.apple.com/forums/thread/808808) and dotnet/maui#32365 (https://github.com/dotnet/maui/issues/32365) Is this a known issue with AssistiveTouch + UINavigationController transitions on iPadOS 26? Is there a recommended workaround?
Replies
1
Boosts
0
Views
1.6k
Activity
6d
Enhancing age-appropriate experiences
With the declining literacy rates I think it would be incredibly valuable for apple to implement a separate keyboard experience for minors. One without auto or predictive text, swipe to text, or even potentially also voice memos. These are all very convenient features that I think could unfortunately contribute or even enable the literacy crisis as more and more children grow up and rely on technology. I also think bringing back the ‘look up’ tool on highlighted text into the main options would support and encourage more education (or even adding a thesaurus option as well) From: A Gen Z adult who grew up learning how to spell at the same time I learned how to text. Without relying on all of the convenience features that in turn can remove the mental friction that learning to fix your mistakes provides, my iPhone was teaching me how to spell with simple red lines that required me to interact with my spelling in order to correct my mistakes. Note: Autocorrect was still a feature at the time however was often turned off by most people because of text slang culture which coincidentally helped create more intentional spell check interactions. I believe the decision to turn off autocorrect should be considered a more conscious responsibility so it should not necessarily be left up to a child to decide for themselves.
Replies
1
Boosts
0
Views
1k
Activity
1w
How Do People Usually Navigate with Full Keyboard Access?
Hi, I'm new to Full Keyboard Access, and I was wondering how people typically navigate UI components with an external keyboard. Do people usually use Tab/Ctrl+Tab, or are the arrow keys more commonly used?
Replies
4
Boosts
0
Views
2.7k
Activity
1w
Disable sleep/wake when in Autonomous Single App Mode (ASAM)
If a user enables/disables Guided Access, they can modify the session settings to disable the top (sleep/wake) button. In Single App Mode (SAM), there is a payload option for disabling the sleep/wake button via Mobile Device Management (MDM). In Autonomous Single App Mode (ASAM), there doesn't appear to be any way to disable the top button. ASAM does not honor the Guided Access sessions settings, and there is no payload option in the MDM. This is a glaring issue especially when ASAM is marketed as the solution for apps in a medical setting where the app is trading hands from a medical professional to a patient. Our app is used during a lengthy procedure and does not function properly if the patient puts the iPad to sleep. We're stuck asking our medical professionals to put the iPad in Guided Access, but the user experience is clunky and would be much improved by implementing ASAM. Is there some little-known API for disabling the sleep/wake button during ASAM that I'm just missing?
Replies
2
Boosts
3
Views
3.5k
Activity
1w
iOS 26.6: Guided Access becomes unavailable after disabling and re-enabling on iPhone 15
Device iPhone 15 iOS Versions iOS 26.5 iOS 26.6 Summary: I found a reproducible issue with Guided Access on my iPhone 15. After disabling Guided Access, it cannot be enabled again for approximately 30–60 minutes. The problem exists on both iOS 26.5 and iOS 26.6. Steps to Reproduce: Enable Guided Access. Use Guided Access for approximately 5–10 minutes. Disable Guided Access. Wait 1–2 minutes. Try enabling Guided Access again. Expected Result: Guided Access should enable immediately every time. Actual Result Instead of enabling, the phone displays: "Guided Access Unavailable" After this message appears, Guided Access cannot be enabled again. I must wait approximately 30–60 minutes before the feature becomes available again. Frequency 100% I can reproduce this every time using the steps above. Troubleshooting Already Tried Restarted iPhone. Force restarted iPhone. Turned Guided Access off and on. Updated from iOS 26.5 to iOS 26.6. The issue still occurs. Questions: Can anyone reproduce this on iPhone 15 or other iPhone models running iOS 26.5 or iOS 26.6? Has anyone found a workaround?
Replies
1
Boosts
0
Views
853
Activity
1w
Is there a recommended WCAG checklist for native macOS and iOS apps?
I'm working on improving accessibility in a native macOS app and going through WCAG, but with so many success criteria it's hard to know where to focus for native Apple platform apps. 1. Does Apple recommend a specific subset or checklist of WCAG requirements for macOS and iOS? 2. If not, which criteria are generally considered essential, and how do developers typically validate them using Apple's accessibility tools and assistive technologies? I'm looking for a prioritized list of criteria that actually apply to native apps, rather than trying to implement every WCAG criterion individually.
Replies
3
Boosts
0
Views
792
Activity
1w
Opening specific Accessibility settings with a deeplink?
Heya! is there anyway to allow a user to open an accessibility setting from an iOS app? As currently you kinda have to explain how to enable it on your device and honestly thats kinda completely against how accessibility ux should work as it as it requires and expects a user to read+understand something they might as well can't because of accessibility issues in the first place and thus basically punishing a user for it. I tested this with some users and asking them to go trough 3-5 menu's with overwhelming settings is to complex and most give up, thus directing them would solve that problem.
Replies
3
Boosts
1
Views
2.1k
Activity
3w
Best practices for iOS Full Keyboard Access navigation?
Hi 👋, I’m working on improving Full Keyboard Access support in an iOS app and would love to hear about your experience. When developing for keyboard navigation, what approach do you usually take for navigating between UI elements? Do you mainly use Tab/Ctrl+Tab, arrow keys, or a combination of both? I’ve already watched some WWDC sessions and Apple's docs on this topic: https://developer.apple.com/design/human-interface-guidelines/keyboards https://developer.apple.com/videos/play/wwdc2021/10120/ https://developer.apple.com/videos/play/wwdc2021/10260/ https://developer.apple.com/documentation/UIKit/navigating-an-app-s-user-interface-using-a-keyboard However, I’d appreciate any recommendations for useful resources, documentation, or things to be aware of when implementing keyboard accessibility. :🙏
Replies
0
Boosts
0
Views
623
Activity
4w
Proposing Expressive Siri Offload via Private Cloud Compute (PCC) for 8GB Devices (Feedback ID: FB23178983)
Hi everyone, With the initial rollout of the iOS 27 Beta, the advanced configuration sliders for the new, highly expressive Siri voice models are currently hidden/disabled on devices operating under an 8GB RAM threshold. While the local AFM 3 Core Advanced engine is memory-gated to 12GB+ hardware due to local footprint constraints, this creates a significant barrier for users who rely on next-generation vocal expressivity and fluid dictation features for accessibility. To address this, I have filed a formal feature request (FB23178983) asking Apple to route the expressive Siri framework through Private Cloud Compute (PCC) on 8GB devices (like the iPhone 15 Pro or base iPhone 16 models). By utilizing server-side rendering over secure, stateless cloud nodes, Apple could easily deliver these vital accessibility configurations without exhausting the local 8GB memory footprint. I’m curious if other accessibility testers and auditors on this board are looking for this exact routing path? If you or your users rely on advanced speech synthesis features and are currently locked out by the local RAM gate, please consider filing a duplicate request or adding your diagnostic logs to FB23178983 to help increase visibility with the Core Accessibility and Software Architecture triage teams. Looking forward to hearing your thoughts and experiences with the current voice-indexing behaviors on 8GB hardware!
Replies
1
Boosts
0
Views
1.2k
Activity
Jul ’26
Feature Request: Native Acapela Voice Library Integration & Cross-Pipeline Voice Sharing:
Feature Request: Native Acapela Voice Library Integration & Cross-Pipeline Voice Sharing Associated Feedback Feedback Assistant Ticket: FB23666342 1. The Core Proposal On behalf of the assistive technology and screen-reader community, I am requesting the native system-level integration of the comprehensive Acapela Voice Library into iOS and macOS. This library should be added as a native synthesizer tier alongside existing options like Eloquence. Additionally, we request cross-pipeline voice compatibility, allowing the Siri assistant to utilize configured VoiceOver voice assets, and allowing VoiceOver to utilize Expressive Siri neural models. 2. Structural UI Layout Concept To maintain system cleanliness while maximizing user choice, we propose grouping the Acapela catalog exactly like the current native Eloquence implementation: A main, expandable heading titled Acapela inside the Speech rotor settings. Under this heading, voices should be strictly categorized by global regional dialects (including English U.S., English UK, Australia, India, Scotland, and all other languages offered to AT vendors). This deployment must include all specialized character profiles (such as the Little Creature variant) and their pediatric/child voices catalog. 3. Addressing Ear Fatigue and Equity While parametric synthesizers are excellent for high-speed text scanning, extended multi-hour document audits cause severe cognitive ear fatigue due to compressed, robotic waveforms. Integrating the full Acapela catalog—including both 22kHz HQ (High Quality) profiles for natural reading stamina and 22kHz CO (Colibri/Compact) profiles for rapid responsiveness—allows blind and low-vision power users to pick their preferred acoustic texture. Natively licensing this library eliminates the unfair financial barrier of third-party lifetime licensing fees, creating true out-of-the-box system equity. If you want to check out my post on expressive Siri, see below. Link: https://developer.apple.com/forums/thread/834920
Replies
0
Boosts
0
Views
507
Activity
Jul ’26
Hiding bracketed Braille Unicode characters when using Braille Dots Pattern - liblouis iOS Braille table on iPhone with Braille Displays via bluetooth on Safari
I have a question about rendering Braille Unicode patterns via VoiceOver on iPhone connected via Bluetooth with Braille displays. I’m developing a web app (users access via Safari) that uses raw Braille Unicode characters rather than using 8-dot, UEB contracted or uncontracted, because I want the characters to render the exact dots regardless of which braille table the user has theirs set too. My question is, can I hide the (bracketing?) characters [⣇ (1-2-3-7-8) and ⣸ (4-5-6-7-8)] that bracket Braille Unicode character passages? I find them unseemly from the perspective of the user, who may or may not be especially technologically savvy. Any suggestions for work arounds will be appreciated.
Replies
0
Boosts
0
Views
516
Activity
Jul ’26
Accessibility Feature Suggestion - Bring Back The Home Bar!!
Hi there, I am a day-to-day user of Apple Devices, whether it’s my iPhone, my iPad or Apple Watch. I originally suggested this feature to the Apple Support team, and through the Product Feedback site, back in September 2025 when iOS 26 and iPadOS 26 launched. All I want is a toggle option within the Accessibility settings to display the home bar permanently. This isn’t exactly much to ask for, and I am still waiting. Please help me! Thank you
Replies
0
Boosts
0
Views
736
Activity
Jul ’26
Full Keyboard Access support for custom MKAnnotationView in MKMapView
We’re working on improving the accessibility of a MKMapView that displays custom MKAnnotationView instances. Our implementation is fully accessible with VoiceOver: The custom annotation views expose the correct accessibility information. Users can navigate between annotations using custom accessibility rotors. The overall VoiceOver experience works as expected. However, we’re unable to make the custom MKAnnotationView instances accessible through Full Keyboard Access (FKA). Despite configuring the annotation views as accessibility elements and experimenting with focus-related APIs, the annotations never become reachable through keyboard navigation. They appear to be skipped entirely by the FKA focus system. Is there a supported way to make custom MKAnnotationView instances participate in Full Keyboard Access navigation? If this scenario is currently unsupported, is there a recommended approach or any plans to expose public APIs that would allow developers to provide a keyboard-accessible experience for custom annotations in MKMapView? Any guidance would be greatly appreciated.
Replies
4
Boosts
0
Views
773
Activity
Jul ’26
Accessibility Improvement Request: Native iOS NFC Scanning Modal Customisation
Hello I am a Product Designer at the Commonwealth Bank of Australia (CBA). We recently launched a feature enabling customers to verify their identity by scanning their passport's biometric chip via NFC. While our in-app flow is highly optimised, the core user experience relies heavily on the native iOS NFC scanning modal (NFCTagReaderSession / NFCNDEFReaderSession). After conducting extensive user testing, we found that the current native UI consistently causes user confusion, friction, and avoidable drop-offs. Because developer customisation is currently limited strictly to the body copy string, we are unable to resolve these critical UX and accessibility issues ourselves. Below are three specific areas where the native NFC modal is performing below expectations, along with proposed solutions. Dynamic Heading States The Problem: The modal heading is hardcoded to "Ready to Scan" and remains static throughout the entire lifecycle. It does not update when scanning begins, when scanning completes, or when an error occurs. Showing "Ready to Scan" alongside a loading state or a success checkmark is logically contradictory and confuses users. The Impact: Users are left uncertain if the device is actively reading, finished, or waiting for input. Proposed Solution: Allow developers to dynamically update the header text via the API based on session states (e.g., Ready to Scan, Scanning..., Hold Still, Scan Complete). Alternatively, implement native, automated heading changes that correspond to the actual hardware state. Accessibility & Typography (Body Copy Legibility) The Problem: The customisable body text underneath the main heading uses a font size that is far too small. The Impact: During user testing, the vast majority of participants completely missed or ignored this text. Even standard users struggled to read it, and it poses a severe barrier for users with visual impairments. Since this is the only text developers can control to give context-specific instructions, its lack of legibility breaks the experience. Proposed Solution: Increase the default font size of the body text to meet standard iOS Human Interface Guidelines (HIG) for legibility, or respect the user's Dynamic Type settings within the modal template. Active Scanning Animation / State Indicator The Problem: The native looping animation shows a phone tilting toward a reader. While appropriate for the initiation state, this animation does not change once active data transfer begins. The Impact: When combined with the static "Ready to Scan" heading, users have zero visual feedback that a scan is actively in progress. They frequently move the phone away too early, resulting in aborted scans and error loops. Proposed Solution: Introduce a distinct visual state indicator once scanning starts—such as a progress bar, a loading spinner, or an altered animation—to signal that scanning is underway. The current restrictions on the native NFC modal limit our ability to deliver an accessible, seamless experience for millions of users who rely on identity verification. Unlocking greater UI customisation for developers or updating the native template to be more dynamic would significantly elevate the UX for all apps leveraging CoreNFC. Keen to hear back on any upcoming changes. Thank you!
Replies
3
Boosts
0
Views
697
Activity
Jul ’26
Is there any API to detect Voice Control status in SwiftUI on iOS
I'm building an iOS app in SwiftUI and need to adapt my UI when Voice Control is active — specifically to show labels on custom gesture-driven controls so they're accessible via Voice Control commands. I've checked UIAccessibility and can find notifications and properties for VoiceOver (isVoiceOverRunning), Switch Control (isSwitchControlRunning), and AssistiveTouch (isAssistiveTouchRunning), but I can't find any equivalent for Voice Control. UIAccessibility.isVoiceControlRunning and voiceControlStatusDidChangeNotification appear to exist on macOS (AXIsProcessTrustedWithOptions) but not on iOS. Questions: Is there a public iOS API to detect whether Voice Control is currently active — either a UIAccessibility property, notification, or SwiftUI environment value? If not, is the recommended approach to use UIAccessibility.isGuidedAccessEnabled as a proxy, or something else entirely? Is there a private entitlement or capability that unlocks this detection for App Store apps? What I've already tried: Checking AccessibilityFeatures environment values in SwiftUI (@Environment(.accessibilityReduceMotion) etc.) Thanks!
Replies
2
Boosts
4
Views
1.3k
Activity
Jul ’26
Unable to Accept Invite
I am getting this issue when trying to accept an invite to a new test version of our app. ****Unable to Accept invite This invitation cannot be accepted because your Apple Account, xxxxxxxx.me.com, has already been associated to this app.**** Can you help please?
Replies
15
Boosts
13
Views
7.9k
Activity
Jun ’26
Feature request: Apple Watch announce notifications
Currently, Apple WatchOS 26 can speak "split time" in workouts, but cannot announce notifications. While iOS 26 can "Announce Notifications on Speaker" (if iPhone is locked" ), this is not available on Apple Watch Please add this feature
Replies
1
Boosts
0
Views
1.2k
Activity
Jun ’26
Nearby Interactions, wih camera assistance
I have an app that uses nearby with a custom accessory. works great on iPhone 11-13, starting with iPhone 14, one must use ARkit to get angles we have two problems ARkit is light sensitive, and we do not control the lighting where this app would run.. the 11-13 action works great even in the dark. (our users are blind, this is an accessibility app) ARkit wants to be foreground, but our uses cannot see it, and we have a voice oriented UI that provides navigation instructions.. IF ARkit is foreground, our app doesn't work. with iPhone 15 ProMax, on IOS 18, I got an error, access denied. (not permission denied) now that I am on IOS 26.. bt scan doesn't happen also fails same way on iPhone 17 on IOS26, can't callback now as release signing is no longer done this same code works ok on iOS 17.1 on iPhone 12. Info.plist here info.txt if(SearchedServices == [] ){ services = [TransferService.serviceUUID,QorvoNIService.serviceUUID] } logger.info( "scannerready, starting scan for peripherals \(services) and devices \(IDs)") filteredIDs=IDs; scanning=true; centralManager.scanForPeripherals(withServices: services, options: [CBCentralManagerScanOptionAllowDuplicatesKey: true]) the calling code dataChannel.autoConnect=autoConnect; dataChannel.start(x,ids) // datachannel.start is above self.scanning = true; return "scanning started"; ... log output services from js = and devices= 5FE04CBB services in implementation = bluetooth ready, starting scan for peripherals [] and devices ["5FE04CBB"] scannerready, starting scan for peripherals [6E400001-B5A3-F393-E0A9-E50E24DCCA9E, 2E938FD0-6A61-11ED-A1EB-0242AC120002] and devices ["5FE04CBB"] ⚡️ TO JS {"value":"scanning started"}
Replies
6
Boosts
2
Views
4.1k
Activity
Jun ’26