diff options
author | Matt Ward <matt.ward@microsoft.com> | 2019-11-28 00:01:35 +0300 |
---|---|---|
committer | Matt Ward <matt.ward@microsoft.com> | 2019-11-28 00:07:13 +0300 |
commit | e1fc91dacfbcbbbc8599a33eebad9829e6294cb4 (patch) | |
tree | 5f30714236615c8c28dcc04a009ed6bad2135e97 /main | |
parent | 3558f381b3de0997f57c7bd642fc496b08140cb3 (diff) |
[Debugger] Add accessibility titles for buttons/images in cells
Added accessibility titles to the buttons and images that are displayed
in the debugger tree view in the Exception Caught dialog and the
Locals and Watch pad. The visualizer buttons now have a descriptive
name read by Voice Over. Images now have a descriptive name read by
Voice Over.
Diffstat (limited to 'main')
3 files changed, 50 insertions, 1 deletions
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValue/Mac/MacDebuggerObjectNameView.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValue/Mac/MacDebuggerObjectNameView.cs index 473857592d..21d85d89f5 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValue/Mac/MacDebuggerObjectNameView.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValue/Mac/MacDebuggerObjectNameView.cs @@ -92,6 +92,7 @@ namespace MonoDevelop.Debugger PreviewButton = new NSButton { TranslatesAutoresizingMaskIntoConstraints = false, + AccessibilityTitle = GettextCatalog.GetString ("Open Preview Visualizer"), Image = GetImage ("md-empty", Gtk.IconSize.Menu), BezelStyle = NSBezelStyle.Inline, Bordered = false @@ -264,6 +265,9 @@ namespace MonoDevelop.Debugger TextField.Editable = editable; UpdateFont (TextField); TextField.SizeToFit (); + ImageView.AccessibilityTitle = ObjectValueTreeViewController.GetAccessibilityTitleForIcon ( + Node.Flags, + GettextCatalog.GetString ("Object Name")); var value = editable && string.IsNullOrEmpty (name) ? placeholder : name; var textWidth = GetWidthForString (TextField.Font, value); diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValue/Mac/MacDebuggerObjectValueView.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValue/Mac/MacDebuggerObjectValueView.cs index ceef417d80..7ac7fd7e11 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValue/Mac/MacDebuggerObjectValueView.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValue/Mac/MacDebuggerObjectValueView.cs @@ -82,6 +82,7 @@ namespace MonoDevelop.Debugger int imageSize = treeView.CompactView ? CompactImageSize : ImageSize; viewerButton = new NSButton { + AccessibilityTitle = GettextCatalog.GetString ("Open Value Visualizer"), Image = GetImage (Gtk.Stock.Edit, imageSize, imageSize), TranslatesAutoresizingMaskIntoConstraints = false }; @@ -188,7 +189,9 @@ namespace MonoDevelop.Debugger // First item: Status Icon -or- Spinner if (evaluateStatusIcon != null) { statusIcon.Image = GetImage (evaluateStatusIcon, Gtk.IconSize.Menu, selected); - + statusIcon.AccessibilityTitle = ObjectValueTreeViewController.GetAccessibilityTitleForIcon ( + evaluateStatusIcon, + GettextCatalog.GetString ("Object Value")); if (!statusIconVisible) { AddSubview (statusIcon); statusIconVisible = true; diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValue/ObjectValueTreeViewController.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValue/ObjectValueTreeViewController.cs index cee8afb4cd..aa5fe171d5 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValue/ObjectValueTreeViewController.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValue/ObjectValueTreeViewController.cs @@ -964,6 +964,48 @@ namespace MonoDevelop.Debugger return "md-" + access + global + source; } + internal static string GetAccessibilityTitleForIcon (ObjectValueFlags flags, string defaultTitle = null) + { + if ((flags & ObjectValueFlags.Field) != 0 && (flags & ObjectValueFlags.ReadOnly) != 0) + return GettextCatalog.GetString ("Literal"); + + string global = (flags & ObjectValueFlags.Global) != 0 ? GettextCatalog.GetString ("Static") : string.Empty; + string source; + + switch (flags & ObjectValueFlags.OriginMask) { + case ObjectValueFlags.Property: source = GettextCatalog.GetString ("Property"); break; + case ObjectValueFlags.Type: source = GettextCatalog.GetString ("Class"); global = string.Empty; break; + case ObjectValueFlags.Method: source = GettextCatalog.GetString ("Method"); break; + case ObjectValueFlags.Literal: return GettextCatalog.GetString ("Literal"); + case ObjectValueFlags.Namespace: return GettextCatalog.GetString ("Namespace"); + case ObjectValueFlags.Group: return GettextCatalog.GetString ("Open Resource Folder"); + case ObjectValueFlags.Field: source = GettextCatalog.GetString ("Field"); break; + case ObjectValueFlags.Variable: return GettextCatalog.GetString ("Variable"); + default: return defaultTitle; + } + + string access; + switch (flags & ObjectValueFlags.AccessMask) { + case ObjectValueFlags.Private: access = GettextCatalog.GetString ("Private"); break; + case ObjectValueFlags.Internal: access = GettextCatalog.GetString ("Internal"); break; + case ObjectValueFlags.InternalProtected: + case ObjectValueFlags.Protected: access = GettextCatalog.GetString ("Protected"); break; + default: access = string.Empty; break; + } + + return access + " " + global + " " + source; + } + + internal static string GetAccessibilityTitleForIcon (string iconName, string defaultTitle) + { + switch (iconName) { + case "md-warning": + return GettextCatalog.GetString ("Warning"); + default: + return defaultTitle; + } + } + static int GetKnownImageId (ObjectValueFlags flags) { var name = GetIcon (flags); |