From 7bff6cc4328a81c4f6dd5a2aa083f0cd321121dd Mon Sep 17 00:00:00 2001 From: Alex Soto Date: Wed, 8 Jul 2026 18:22:29 -0400 Subject: [PATCH] [Accessibility] Update bindings up to Xcode 27 Beta 3 Bind the new APIs added to the Accessibility framework's AXSettings.h in Xcode 27, available on iOS, tvOS, macOS and Mac Catalyst 27.0 (API_AVAILABLE(anyappleos(27.0))): * AXApplicationAccessibilityEnabled () -> AXSettings.IsApplicationAccessibilityEnabled * AXApplicationAccessibilityEnabledDidChangeNotification -> AXSettings.ApplicationAccessibilityEnabledDidChangeNotification Also add a monotouch-test exercising the new P/Invoke and remove the now-resolved *-Accessibility.todo xtro annotation files. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- src/Accessibility/AXSettings.cs | 18 ++++++++++++++++++ src/accessibility.cs | 5 +++++ .../monotouch-test/Accessibility/AXSettings.cs | 7 +++++++ .../MacCatalyst-Accessibility.todo | 2 -- .../iOS-Accessibility.todo | 2 -- .../macOS-Accessibility.todo | 2 -- .../tvOS-Accessibility.todo | 2 -- 7 files changed, 30 insertions(+), 8 deletions(-) delete mode 100644 tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-Accessibility.todo delete mode 100644 tests/xtro-sharpie/api-annotations-dotnet/iOS-Accessibility.todo delete mode 100644 tests/xtro-sharpie/api-annotations-dotnet/macOS-Accessibility.todo delete mode 100644 tests/xtro-sharpie/api-annotations-dotnet/tvOS-Accessibility.todo diff --git a/src/Accessibility/AXSettings.cs b/src/Accessibility/AXSettings.cs index 15eeca08b5e6..43c641511b61 100644 --- a/src/Accessibility/AXSettings.cs +++ b/src/Accessibility/AXSettings.cs @@ -144,5 +144,23 @@ public static bool OpenSettingsFeatureIsSupported (AXSettingsFeature feature) { return AXOpenSettingsFeatureIsSupported ((nint) (long) feature) != 0; } + + [SupportedOSPlatform ("ios27.0")] + [SupportedOSPlatform ("maccatalyst27.0")] + [SupportedOSPlatform ("macos27.0")] + [SupportedOSPlatform ("tvos27.0")] + [DllImport (Constants.AccessibilityLibrary)] + static extern byte AXApplicationAccessibilityEnabled (); + + /// Returns whether application accessibility is currently enabled for this process. + [SupportedOSPlatform ("ios27.0")] + [SupportedOSPlatform ("maccatalyst27.0")] + [SupportedOSPlatform ("macos27.0")] + [SupportedOSPlatform ("tvos27.0")] + public static bool IsApplicationAccessibilityEnabled { + get { + return AXApplicationAccessibilityEnabled () != 0; + } + } } } diff --git a/src/accessibility.cs b/src/accessibility.cs index db551e87df39..07af74ace6d2 100644 --- a/src/accessibility.cs +++ b/src/accessibility.cs @@ -373,6 +373,11 @@ partial interface AXSettings { [Notification] [Field ("AXReduceHighlightingEffectsEnabledDidChangeNotification")] NSString ReduceHighlightingEffectsEnabledDidChangeNotification { get; } + + [TV (27, 0), Mac (27, 0), iOS (27, 0), MacCatalyst (27, 0)] + [Notification] + [Field ("AXApplicationAccessibilityEnabledDidChangeNotification")] + NSString ApplicationAccessibilityEnabledDidChangeNotification { get; } } [TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)] diff --git a/tests/monotouch-test/Accessibility/AXSettings.cs b/tests/monotouch-test/Accessibility/AXSettings.cs index 8a77df4c6663..595c374063fc 100644 --- a/tests/monotouch-test/Accessibility/AXSettings.cs +++ b/tests/monotouch-test/Accessibility/AXSettings.cs @@ -18,6 +18,13 @@ public void IsAssistiveAccessEnabled () Assert.That (AXSettings.IsAssistiveAccessEnabled, Is.EqualTo (true).Or.EqualTo (false), "IsAssistiveAccessEnabled"); } + [Test] + public void IsApplicationAccessibilityEnabled () + { + TestRuntime.AssertXcodeVersion (27, 0); + Assert.That (AXSettings.IsApplicationAccessibilityEnabled, Is.EqualTo (true).Or.EqualTo (false), "IsApplicationAccessibilityEnabled"); + } + static bool testedOnce; [Test] public void OpenSettingsFeature () diff --git a/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-Accessibility.todo b/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-Accessibility.todo deleted file mode 100644 index 453234047f59..000000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-Accessibility.todo +++ /dev/null @@ -1,2 +0,0 @@ -!missing-field! AXApplicationAccessibilityEnabledDidChangeNotification not bound -!missing-pinvoke! AXApplicationAccessibilityEnabled is not bound diff --git a/tests/xtro-sharpie/api-annotations-dotnet/iOS-Accessibility.todo b/tests/xtro-sharpie/api-annotations-dotnet/iOS-Accessibility.todo deleted file mode 100644 index 453234047f59..000000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/iOS-Accessibility.todo +++ /dev/null @@ -1,2 +0,0 @@ -!missing-field! AXApplicationAccessibilityEnabledDidChangeNotification not bound -!missing-pinvoke! AXApplicationAccessibilityEnabled is not bound diff --git a/tests/xtro-sharpie/api-annotations-dotnet/macOS-Accessibility.todo b/tests/xtro-sharpie/api-annotations-dotnet/macOS-Accessibility.todo deleted file mode 100644 index 453234047f59..000000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/macOS-Accessibility.todo +++ /dev/null @@ -1,2 +0,0 @@ -!missing-field! AXApplicationAccessibilityEnabledDidChangeNotification not bound -!missing-pinvoke! AXApplicationAccessibilityEnabled is not bound diff --git a/tests/xtro-sharpie/api-annotations-dotnet/tvOS-Accessibility.todo b/tests/xtro-sharpie/api-annotations-dotnet/tvOS-Accessibility.todo deleted file mode 100644 index 453234047f59..000000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/tvOS-Accessibility.todo +++ /dev/null @@ -1,2 +0,0 @@ -!missing-field! AXApplicationAccessibilityEnabledDidChangeNotification not bound -!missing-pinvoke! AXApplicationAccessibilityEnabled is not bound