diff options
Diffstat (limited to 'Xamarin.Forms.Platform.iOS/ViewRenderer.cs')
-rw-r--r-- | Xamarin.Forms.Platform.iOS/ViewRenderer.cs | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/Xamarin.Forms.Platform.iOS/ViewRenderer.cs b/Xamarin.Forms.Platform.iOS/ViewRenderer.cs index 01f8e06a..2cf9f754 100644 --- a/Xamarin.Forms.Platform.iOS/ViewRenderer.cs +++ b/Xamarin.Forms.Platform.iOS/ViewRenderer.cs @@ -25,6 +25,11 @@ namespace Xamarin.Forms.Platform.MacOS public abstract class ViewRenderer<TView, TNativeView> : VisualElementRenderer<TView> where TView : View where TNativeView : NativeView { +#if __MOBILE__ + string _defaultAccessibilityLabel; + string _defaultAccessibilityHint; + bool? _defaultIsAccessibilityElement; +#endif NativeColor _defaultColor; public TNativeView Control { get; private set; } @@ -110,7 +115,59 @@ namespace Xamarin.Forms.Platform.MacOS base.OnRegisterEffect(effect); effect.Control = Control; } +#if __MOBILE__ + protected override void SetAccessibilityHint() + { + if (Control == null) + { + base.SetAccessibilityHint(); + return; + } + + if (Element == null) + return; + + if (_defaultAccessibilityHint == null) + _defaultAccessibilityHint = Control.AccessibilityHint; + + Control.AccessibilityHint = (string)Element.GetValue(Accessibility.HintProperty) ?? _defaultAccessibilityHint; + + } + + protected override void SetAccessibilityLabel() + { + if (Control == null) + { + base.SetAccessibilityLabel(); + return; + } + + if (Element == null) + return; + + if (_defaultAccessibilityLabel == null) + _defaultAccessibilityLabel = Control.AccessibilityLabel; + + Control.AccessibilityLabel = (string)Element.GetValue(Accessibility.NameProperty) ?? _defaultAccessibilityLabel; + } + + protected override void SetIsAccessibilityElement() + { + if (Control == null) + { + base.SetIsAccessibilityElement(); + return; + } + if (Element == null) + return; + + if (!_defaultIsAccessibilityElement.HasValue) + _defaultIsAccessibilityElement = Control.IsAccessibilityElement; + + Control.IsAccessibilityElement = (bool)((bool?)Element.GetValue(Accessibility.IsInAccessibleTreeProperty) ?? _defaultIsAccessibilityElement); + } +#endif protected override void SetAutomationId(string id) { if (Control == null) |