Skip to content

Accessibility iOS xcode16.0 b1

Rolf Bjarne Kvinge edited this page Aug 19, 2024 · 3 revisions

#Accessibility.framework https://github.com/xamarin/xamarin-macios/pull/21070

diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Accessibility.framework/Headers/AXFoundation.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Accessibility.framework/Headers/AXFoundation.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Accessibility.framework/Headers/AXFoundation.h	2024-04-13 15:10:42
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Accessibility.framework/Headers/AXFoundation.h	2024-05-30 10:02:21
@@ -18,3 +18,9 @@
         #define AX_EXTERN   extern __attribute__((visibility("default")))
     #endif
 #endif
+
+#ifdef __swift__
+    // This struct is not available in Objective-C. Its only purpose is to create a namespace for accessibility symbols in Swift.
+typedef struct AccessibilitySettings { void *_reserved; } AccessibilitySettings;
+#endif
+
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Accessibility.framework/Headers/AXSettings.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Accessibility.framework/Headers/AXSettings.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Accessibility.framework/Headers/AXSettings.h	2024-04-13 15:10:42
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Accessibility.framework/Headers/AXSettings.h	2024-05-30 10:02:21
@@ -2,7 +2,7 @@
 //  AXSettings.h
 //  Accessibility
 //
-//  Copyright © 2022 Apple. All rights reserved.
+//  Copyright © 2022-2023 Apple. All rights reserved.
 //
 
 #import <Foundation/Foundation.h>
@@ -11,18 +11,35 @@
 NS_ASSUME_NONNULL_BEGIN
 
 // Returns whether the system setting to prefer horizontal text is enabled for languages that support both vertical and horizontal text layout.
-AX_EXTERN BOOL AXPrefersHorizontalTextLayout(void) API_AVAILABLE(ios(17.0), macos(14.0), tvos(17.0), watchos(10.0));
-AX_EXTERN NSNotificationName const AXPrefersHorizontalTextLayoutDidChangeNotification API_AVAILABLE(ios(17.0), macos(14.0), tvos(17.0), watchos(10.0));
+AX_EXTERN BOOL AXPrefersHorizontalTextLayout(void) API_AVAILABLE(ios(17.0), macos(14.0), tvos(17.0), watchos(10.0)) NS_REFINED_FOR_SWIFT;
+AX_EXTERN NSNotificationName const AXPrefersHorizontalTextLayoutDidChangeNotification API_AVAILABLE(ios(17.0), macos(14.0), tvos(17.0), watchos(10.0)) NS_REFINED_FOR_SWIFT;
 
 // Returns whether the system setting for displaying animations in an animated image is on or off.
-AX_EXTERN BOOL AXAnimatedImagesEnabled(void) API_AVAILABLE(ios(17.0), macos(14.0), tvos(17.0), watchos(10.0));
-AX_EXTERN NSNotificationName const AXAnimatedImagesEnabledDidChangeNotification API_AVAILABLE(ios(17.0), macos(14.0), tvos(17.0), watchos(10.0));
+AX_EXTERN BOOL AXAnimatedImagesEnabled(void) API_AVAILABLE(ios(17.0), macos(14.0), tvos(17.0), watchos(10.0)) NS_REFINED_FOR_SWIFT;
+AX_EXTERN NSNotificationName const AXAnimatedImagesEnabledDidChangeNotification API_AVAILABLE(ios(17.0), macos(14.0), tvos(17.0), watchos(10.0)) NS_REFINED_FOR_SWIFT;
 
+/// Returns whether Assistive Access is running.
+/// The value does not change during a process's lifetime, so it is not necessary to observe changes.
+AX_EXTERN BOOL AXAssistiveAccessEnabled(void) API_AVAILABLE(ios(18.0), macos(15.0), tvos(18.0), watchos(11.0), visionos(2.0)) NS_SWIFT_NAME(getter:AccessibilitySettings.isAssistiveAccessEnabled());
+
 #if TARGET_OS_VISION
 // When true, indicates that the user prefers alternatives to head anchored content
 // Alternate anchors should be used for most head anchored UI, such as world anchors
-AX_EXTERN BOOL AXPrefersHeadAnchorAlternative(void) API_AVAILABLE(visionos(1.0));
-AX_EXTERN NSNotificationName const AXPrefersHeadAnchorAlternativeDidChangeNotification API_AVAILABLE(visionos(1.0));
+AX_EXTERN BOOL AXPrefersHeadAnchorAlternative(void) API_AVAILABLE(visionos(1.0)) NS_REFINED_FOR_SWIFT;
+AX_EXTERN NSNotificationName const AXPrefersHeadAnchorAlternativeDidChangeNotification API_AVAILABLE(visionos(1.0)) NS_REFINED_FOR_SWIFT;
 #endif
+
+// Returns whether the system setting to prefer non-blinking text insertion indicators in editable text fields is enabled. Apps that draw custom insertion indicators should honor this setting.
+AX_EXTERN BOOL AXPrefersNonBlinkingTextInsertionIndicator(void) API_AVAILABLE(ios(18.0), macos(15.0), tvos(18.0), watchos(11.0), visionos(2.0)) NS_REFINED_FOR_SWIFT;
+AX_EXTERN NSNotificationName const AXPrefersNonBlinkingTextInsertionIndicatorDidChangeNotification API_AVAILABLE(ios(18.0), macos(15.0), tvos(18.0), watchos(11.0), visionos(2.0)) NS_SWIFT_NAME(AccessibilitySettings.prefersNonBlinkingTextInsertionIndicatorDidChangeNotification);
+
+typedef NS_ENUM(NSInteger, AXSettingsFeature) {
+    // Jump to the setting for "Allow Apps to Request to Use" in Personal Voice. This is relevant for the AVSpeechSynthesis.personalVoiceAuthorizationStatus API.
+    AXSettingsFeaturePersonalVoiceAllowAppsToRequestToUse = 1,
+} NS_SWIFT_NAME(AccessibilitySettings.Feature) API_AVAILABLE(ios(18.0), macos(15.0), tvos(18.0), watchos(11.0), visionos(2.0));
+
+// Open the Settings app to a specific section.
+// If successful, the completion handler will set error to nil.
+AX_EXTERN void AXOpenSettingsFeature(AXSettingsFeature feature, void(^_Nullable completionHandler)(NSError *_Nullable error)) API_AVAILABLE(ios(18.0), macos(15.0), tvos(18.0), watchos(11.0), visionos(2.0)) NS_REFINED_FOR_SWIFT;
 
 NS_ASSUME_NONNULL_END
Clone this wiki locally