Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoriain holmes <iain@xamarin.com>2017-07-17 21:26:08 +0300
committeriain holmes <iain@xamarin.com>2017-07-17 21:26:08 +0300
commit51b41b23e1afc71f92981df24e4f1d098f61bb75 (patch)
tree29c1b743de337ca2d9e27c6b3388a638b7cc723b /main/src/core/MonoDevelop.Ide
parentd77977c0068e1e33c50fa5a294277d09a3712545 (diff)
[A11y] Improve tabstrip accessibility
Diffstat (limited to 'main/src/core/MonoDevelop.Ide')
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelper.cs1
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelperMac.cs20
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelperNoOp.cs8
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Components/Tabstrip.cs6
4 files changed, 33 insertions, 2 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelper.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelper.cs
index 9f8bd48c01..74c8007f94 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelper.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelper.cs
@@ -533,6 +533,7 @@ namespace MonoDevelop.Components.AtkCocoaHelper
string Identifier { get; set; }
string Help { get; set; }
bool Hidden { get; set; }
+ int Index { get; set; }
// For Navigable Static Text
Func<string> Contents { set; }
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelperMac.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelperMac.cs
index dc0ddd15ec..6dedc4b8d9 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelperMac.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelperMac.cs
@@ -855,6 +855,26 @@ namespace MonoDevelop.Components.AtkCocoaHelper
p.GetVisibleCharacterRange = value;
}
}
+
+ public int Index {
+ get {
+ var p = realProxyElement;
+ if (p == null) {
+ throw new Exception ("Not proxy element");
+ }
+
+ return (int) p.AccessibilityIndex;
+ }
+
+ set {
+ var p = realProxyElement;
+ if (p == null) {
+ throw new Exception ("Not a proxy element");
+ }
+
+ p.AccessibilityIndex = value;
+ }
+ }
}
class RealAccessibilityElementProxy : NSAccessibilityElement, INSAccessibility
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelperNoOp.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelperNoOp.cs
index c73624c21d..6843a55a72 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelperNoOp.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelperNoOp.cs
@@ -219,6 +219,14 @@ namespace MonoDevelop.Components.AtkCocoaHelper
}
}
+ public int Index {
+ get {
+ return 0;
+ }
+ set {
+ }
+ }
+
public Gtk.Widget GtkParent { get; set; }
public Gdk.Rectangle FrameInGtkParent { get; set; }
public Gdk.Rectangle FrameInParent { get; set; }
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/Tabstrip.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/Tabstrip.cs
index 678374de8e..ab2b4d2d2b 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/Tabstrip.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/Tabstrip.cs
@@ -128,6 +128,7 @@ namespace MonoDevelop.Components
var proxies = new AtkCocoaHelper.AccessibilityElementProxy [tabs.Count];
foreach (var tab in tabs) {
proxies [i] = tab.Accessible;
+ tab.Accessible.Index = i;
i++;
}
@@ -204,7 +205,7 @@ namespace MonoDevelop.Components
{
requisition.Height = (int)Math.Ceiling (tabSizes.Max (p => p.Y));
}
-
+
protected override bool OnExposeEvent (Gdk.EventExpose evnt)
{
using (var cr = Gdk.CairoHelper.Create (evnt.Window)) {
@@ -367,7 +368,6 @@ namespace MonoDevelop.Components
Gdk.Rectangle gdkRect = new Gdk.Rectangle ((int)allocation.X, (int)allocation.Y, (int)allocation.Width, (int)allocation.Height);
Accessible.FrameInGtkParent = gdkRect;
// If Y != 0, then we need to flip the y axis
-
Accessible.FrameInParent = gdkRect;
}
}
@@ -406,8 +406,10 @@ namespace MonoDevelop.Components
this.TabPosition = tabPosition;
Accessible = AccessibilityElementProxy.ButtonElementProxy ();
+ Accessible.SetRole (AtkCocoa.Roles.AXRadioButton, "tab");
Accessible.Title = label;
Accessible.GtkParent = parent;
+ Accessible.Identifier = "Tabstrip.Tab";
Accessible.PerformPress += OnTabPressed;
}