-
-
Notifications
You must be signed in to change notification settings - Fork 231
Description
Problem
On iOS 26 / Xcode 26.x, new simulator devices ship with AccessibilityEnabled = 0 and ApplicationAccessibilityEnabled = 0 in com.apple.Accessibility preferences. This causes axe describe-ui to return only a bare AXApplication node with empty children: [] and a zero-size frame {{0, 0}, {0, 0}}.
This affects all apps including Apple's own Settings.app — it's not an app-side issue.
Root cause
$ xcrun simctl spawn <UDID> defaults read com.apple.Accessibility
{
AccessibilityEnabled = 0;
ApplicationAccessibilityEnabled = 0;
...
}With these flags off, the accessibility daemon doesn't expose any element tree. FBSimulatorControl's XPC queries return the empty Application node.
Workaround
xcrun simctl spawn <UDID> defaults write com.apple.Accessibility AccessibilityEnabled -bool true
xcrun simctl spawn <UDID> defaults write com.apple.Accessibility ApplicationAccessibilityEnabled -bool trueAfter this, describe-ui immediately returns the full hierarchy. The setting persists in the device's preferences plist until "Erase All Content and Settings" or device deletion.
Suggested fix
axe could auto-enable these when it detects an empty hierarchy:
- After
describe-uigets a result with zero children, checkcom.apple.Accessibilitydefaults on the target sim - If either flag is
0, enable both and retry - Log a note so users know it was auto-fixed
This would make snapshot-ui work out of the box on fresh iOS 26 simulators. Currently there's nothing telling users why the tree is empty — the output just looks like the app has no UI.
Environment
- macOS 26.3.1, Xcode 26.3, iOS 26.2 runtime
- XcodeBuildMCP 2.3.0, axe v1.5.2