From 99eaa8960f3f132473adece74a536ab5c61d2a01 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Sat, 27 May 2023 10:42:54 +0200 Subject: [PATCH] Implement accessibilityPlaceholderValue. --- native/Avalonia.Native/src/OSX/automation.mm | 7 +++++++ src/Avalonia.Native/AvnAutomationPeer.cs | 2 ++ src/Avalonia.Native/avn.idl | 1 + 3 files changed, 10 insertions(+) diff --git a/native/Avalonia.Native/src/OSX/automation.mm b/native/Avalonia.Native/src/OSX/automation.mm index 04293e8721..ae0e7314ea 100644 --- a/native/Avalonia.Native/src/OSX/automation.mm +++ b/native/Avalonia.Native/src/OSX/automation.mm @@ -438,6 +438,13 @@ private: return [super accessibilityNumberOfCharacters]; } +- (NSString *)accessibilityPlaceholderValue +{ + if (_peer->IsTextProvider()) + return GetNSStringAndRelease(_peer->TextProvider_GetPlaceholderText()); + return [super accessibilityPlaceholderValue]; +} + - (NSRange)accessibilityRangeForLine:(NSInteger)line { if (_peer->IsTextProvider()) diff --git a/src/Avalonia.Native/AvnAutomationPeer.cs b/src/Avalonia.Native/AvnAutomationPeer.cs index 7f5d8717e2..fde115212d 100644 --- a/src/Avalonia.Native/AvnAutomationPeer.cs +++ b/src/Avalonia.Native/AvnAutomationPeer.cs @@ -160,6 +160,8 @@ namespace Avalonia.Native *start = range.Start; *length = range.Length; } + + public IAvnString TextProvider_GetPlaceholderText() => ((ITextProvider)_inner).PlaceholderText.ToAvnString(); public IAvnString TextProvider_GetSelectedText() { diff --git a/src/Avalonia.Native/avn.idl b/src/Avalonia.Native/avn.idl index 98aa10b27f..760059f237 100644 --- a/src/Avalonia.Native/avn.idl +++ b/src/Avalonia.Native/avn.idl @@ -919,6 +919,7 @@ interface IAvnAutomationPeer : IUnknown int TextProvider_GetCaretLineNumber(); int TextProvider_GetLineForIndex(int index); void TextProvider_GetLineRange(int lineIndex, int* start, int* length); + IAvnString* TextProvider_GetPlaceholderText(); IAvnString* TextProvider_GetText(int start, int length); int TextProvider_GetTextLength(); IAvnString* TextProvider_GetSelectedText();