From 05389af98e874be23808e8dc8e471b4c4a0005ea Mon Sep 17 00:00:00 2001 From: ahopper Date: Tue, 24 Sep 2024 10:21:31 +0100 Subject: [PATCH] Fix AutomationProperties.HelpText on macos (#17046) * fix Automation.HelpText on windows * fix AutomationProperties.HelpText on macos * change breaking abstract to virtual * only fall back to tooltip if string * remove duplicate override * fix AutomationProperties.HelpText on macos --- native/Avalonia.Native/src/OSX/automation.mm | 5 +++++ src/Avalonia.Native/AvnAutomationPeer.cs | 1 + src/Avalonia.Native/avn.idl | 2 ++ 3 files changed, 8 insertions(+) diff --git a/native/Avalonia.Native/src/OSX/automation.mm b/native/Avalonia.Native/src/OSX/automation.mm index 7171de38f7..1847a83160 100644 --- a/native/Avalonia.Native/src/OSX/automation.mm +++ b/native/Avalonia.Native/src/OSX/automation.mm @@ -149,6 +149,11 @@ return [super accessibilityTitle]; } +- (NSString *)accessibilityHelp +{ + return GetNSStringAndRelease(_peer->GetHelpText()); +} + - (id)accessibilityValue { if (_peer->IsRangeValueProvider()) diff --git a/src/Avalonia.Native/AvnAutomationPeer.cs b/src/Avalonia.Native/AvnAutomationPeer.cs index d62cb04130..16ff99f7dc 100644 --- a/src/Avalonia.Native/AvnAutomationPeer.cs +++ b/src/Avalonia.Native/AvnAutomationPeer.cs @@ -39,6 +39,7 @@ namespace Avalonia.Native public IAvnString ClassName => _inner.GetClassName().ToAvnString(); public IAvnAutomationPeer? LabeledBy => Wrap(_inner.GetLabeledBy()); public IAvnString Name => _inner.GetName().ToAvnString(); + public IAvnString HelpText => _inner.GetHelpText().ToAvnString(); public IAvnAutomationPeer? Parent => Wrap(_inner.GetParent()); public IAvnAutomationPeer? VisualRoot => Wrap(_inner.GetVisualRoot()); diff --git a/src/Avalonia.Native/avn.idl b/src/Avalonia.Native/avn.idl index add248be29..dfbd8c2516 100644 --- a/src/Avalonia.Native/avn.idl +++ b/src/Avalonia.Native/avn.idl @@ -1219,6 +1219,8 @@ interface IAvnAutomationPeer : IUnknown bool IsValueProvider(); IAvnString* ValueProvider_GetValue(); void ValueProvider_SetValue(char* value); + + IAvnString* GetHelpText(); } [uuid(b00af5da-78af-4b33-bfff-4ce13a6239a9)]