diff options
author | Mykyta Bondarenko <32954580+mykyta-bondarenko@users.noreply.github.com> | 2019-12-02 16:46:18 +0300 |
---|---|---|
committer | monojenkins <jo.shields+jenkins@xamarin.com> | 2019-12-12 12:42:18 +0300 |
commit | 3353c0810a0c66a075046944a4f2caa79ff42be7 (patch) | |
tree | 67c108dac4010ffba2d06cb6ee09307ae08b719e /main/src/addins | |
parent | 1679a6aff1586a8512f9ff7be18594542793b4c1 (diff) |
[753577][StatusBar] announce changed status
Fixes https://devdiv.visualstudio.com/DevDiv/_workitems/edit/753577
Diffstat (limited to 'main/src/addins')
-rw-r--r-- | main/src/addins/MacPlatform/MainToolbar/StatusBar.cs | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/main/src/addins/MacPlatform/MainToolbar/StatusBar.cs b/main/src/addins/MacPlatform/MainToolbar/StatusBar.cs index 31412de471..1780680d9b 100644 --- a/main/src/addins/MacPlatform/MainToolbar/StatusBar.cs +++ b/main/src/addins/MacPlatform/MainToolbar/StatusBar.cs @@ -43,6 +43,7 @@ using System.Threading; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using MonoDevelop.MacInterop; +using MonoDevelop.Components.AtkCocoaHelper; namespace MonoDevelop.MacIntegration.MainToolbar { @@ -927,8 +928,21 @@ namespace MonoDevelop.MacIntegration.MainToolbar bool changed = LoadText (message, isMarkup, statusType); LoadPixbuf (image); - if (changed) + if (changed) { ReconstructString (); + // announce new status if vo/a11y is enabled + if (MonoDevelop.Ide.Desktop.PlatformService.AccessibilityInUse) { + MakeAccessibilityAnnouncement (text); + } + } + } + + static void MakeAccessibilityAnnouncement (string text) + { + using var message = new NSString (text); + using var dictionary = new NSDictionary (NSAccessibilityNotificationUserInfoKeys.AnnouncementKey, message, + NSAccessibilityNotificationUserInfoKeys.PriorityKey, NSAccessibilityPriorityLevel.High); + NSAccessibility.PostNotification (NSApplication.SharedApplication.AccessibilityMainWindow, NSAccessibilityNotifications.AnnouncementRequestedNotification, dictionary); } bool LoadText (string message, bool isMarkup, MessageType statusType) |