Explore best practices for creating inclusive apps that cater to users with diverse abilities

Learn More

Posts under General subtopic

Post

Replies

Boosts

Views

Activity

actionGroupCell Y coordinates are corrupted. The overlay for 'Save to Files' doesn't expose no valid id's for testability.
I am using Maestro framework for testing iOS. For our tests we need to save pdf's to files. When opening the 'QLOverlayDefaultActionButtonAccessibilityIdentifier' the buttons on the overlay are way off, the coordinates got corrupted. When opening the files app, the next screen has no coordinates for testing. I checked with xcode inspector and the same issue persists.
1
0
383
1w
VoiceOver is interrupted/disabled when running XCUITest (WDA). Request guidance for accessibility research automation on iOS.
Hello, I am working on a research project focused on creating accessible interactions for visually impaired users. I need to verify some automated assistance processes in a real-world usage environment where VoiceOver is enabled. However, I have encountered a blocking issue: When I connect the device through Xcode UI Test / WebDriverAgent (or Appium + WDA) and perform operations, VoiceOver gets interrupted (sometimes it is even directly turned off), preventing blind users from continuing to use the narrator. Replication steps (stable replication)    On iPhone, enable VoiceOver (Settings → Accessibility → Narrator), and keep the device unlocked and the screen on. On Mac, start [Xcode UI Test / WebDriverAgentRunner / Appium+WDA] and establish a session with the device (XCTest session). Perform any operation: read the accessibility tree (/source), take screenshots, or click/slide. Observe the phenomenon: VoiceOver will [automatically turn off / reading interruption / focus jumping / unable to continue reading the new interface]. Expected behavior VoiceOver, as the core accessibility capability, should remain running and be able to continue reading the interface; the automation/assistance process should not "steal" and cause the narrator to fail. Actual behavior VoiceOver is [turned off / interrupted], and even after interface changes, it cannot read normally, affecting the use of blind users. I would like to ask: Non-jailbroken or external hardware-free methods Is this a known limitation (such as the mutual exclusion between XCTest and VoiceOver as Accessibility clients)? Is there an officially supported way to allow the automation/assistance program to safely read necessary information and trigger operations while VoiceOver is enabled, without disrupting the narrator (such as App Intents, Shortcuts, or other API/framework suggestions)? If it is necessary to avoid XCTest/WDA: In the research prototype stage, what is the recommended "reproducible, measurable" alternative technical route?
1
0
991
1w
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!
13
4
3k
6d
Accessibility Inspector Bugs
Hello, i'm currently working on improving accessibility in my app using the built-in Xcode tool, Accessibility Inspector. For the most part, it works well — it correctly displays warnings about missing button labels or insufficient touch target sizes. However, it does not seem to handle certain cases properly, particularly dynamic fonts. Here is the approach I’m using for dynamic fonts: static func getDynamic(font: FontType, size: CGFloat, textStyle: UIFont.TextStyle) -> UIFont { let customFont = UIFont(name: font.rawValue, size: size)! return UIFontMetrics(forTextStyle: textStyle).scaledFont(for: customFont) } label.adjustsFontForContentSizeCategory = true My labels are configured with: numberOfLines = 0 no fixed height constraints This allows them to expand as needed without clipping. I have tested this visually on multiple devices, and everything appears to work correctly — fonts scale as expected, and text is not truncated. However, Accessibility Inspector still reports issues related to dynamic type and, in some cases, text clipping. On iOS 18, approximately 40% of the fonts configured this way still trigger warnings about missing dynamic type support, even though they scale correctly. On iOS 26+, the issue becomes consistent — every font in the app triggers this warning. There are no cases where the inspector passes without reporting a problem, despite the UI behaving correctly in practice. So my question is: Is there a known way to resolve this? Could this be an issue with Apple's tools? If so, is there any information on when it might be fixed?
1
1
561
4d
actionGroupCell Y coordinates are corrupted. The overlay for 'Save to Files' doesn't expose no valid id's for testability.
I am using Maestro framework for testing iOS. For our tests we need to save pdf's to files. When opening the 'QLOverlayDefaultActionButtonAccessibilityIdentifier' the buttons on the overlay are way off, the coordinates got corrupted. When opening the files app, the next screen has no coordinates for testing. I checked with xcode inspector and the same issue persists.
Replies
1
Boosts
0
Views
383
Activity
1w
VoiceOver is interrupted/disabled when running XCUITest (WDA). Request guidance for accessibility research automation on iOS.
Hello, I am working on a research project focused on creating accessible interactions for visually impaired users. I need to verify some automated assistance processes in a real-world usage environment where VoiceOver is enabled. However, I have encountered a blocking issue: When I connect the device through Xcode UI Test / WebDriverAgent (or Appium + WDA) and perform operations, VoiceOver gets interrupted (sometimes it is even directly turned off), preventing blind users from continuing to use the narrator. Replication steps (stable replication)    On iPhone, enable VoiceOver (Settings → Accessibility → Narrator), and keep the device unlocked and the screen on. On Mac, start [Xcode UI Test / WebDriverAgentRunner / Appium+WDA] and establish a session with the device (XCTest session). Perform any operation: read the accessibility tree (/source), take screenshots, or click/slide. Observe the phenomenon: VoiceOver will [automatically turn off / reading interruption / focus jumping / unable to continue reading the new interface]. Expected behavior VoiceOver, as the core accessibility capability, should remain running and be able to continue reading the interface; the automation/assistance process should not "steal" and cause the narrator to fail. Actual behavior VoiceOver is [turned off / interrupted], and even after interface changes, it cannot read normally, affecting the use of blind users. I would like to ask: Non-jailbroken or external hardware-free methods Is this a known limitation (such as the mutual exclusion between XCTest and VoiceOver as Accessibility clients)? Is there an officially supported way to allow the automation/assistance program to safely read necessary information and trigger operations while VoiceOver is enabled, without disrupting the narrator (such as App Intents, Shortcuts, or other API/framework suggestions)? If it is necessary to avoid XCTest/WDA: In the research prototype stage, what is the recommended "reproducible, measurable" alternative technical route?
Replies
1
Boosts
0
Views
991
Activity
1w
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
13
Boosts
4
Views
3k
Activity
6d
Accessibility Inspector Bugs
Hello, i'm currently working on improving accessibility in my app using the built-in Xcode tool, Accessibility Inspector. For the most part, it works well — it correctly displays warnings about missing button labels or insufficient touch target sizes. However, it does not seem to handle certain cases properly, particularly dynamic fonts. Here is the approach I’m using for dynamic fonts: static func getDynamic(font: FontType, size: CGFloat, textStyle: UIFont.TextStyle) -> UIFont { let customFont = UIFont(name: font.rawValue, size: size)! return UIFontMetrics(forTextStyle: textStyle).scaledFont(for: customFont) } label.adjustsFontForContentSizeCategory = true My labels are configured with: numberOfLines = 0 no fixed height constraints This allows them to expand as needed without clipping. I have tested this visually on multiple devices, and everything appears to work correctly — fonts scale as expected, and text is not truncated. However, Accessibility Inspector still reports issues related to dynamic type and, in some cases, text clipping. On iOS 18, approximately 40% of the fonts configured this way still trigger warnings about missing dynamic type support, even though they scale correctly. On iOS 26+, the issue becomes consistent — every font in the app triggers this warning. There are no cases where the inspector passes without reporting a problem, despite the UI behaving correctly in practice. So my question is: Is there a known way to resolve this? Could this be an issue with Apple's tools? If so, is there any information on when it might be fixed?
Replies
1
Boosts
1
Views
561
Activity
4d