Exemple #1
0
        protected override void OnElementPropertyChanged(PropertyChangedEventArgs args)
        {
            System.Diagnostics.Debug.WriteLine("OnElementPropertyChanged" + args.PropertyName);

            var viewGroup  = Control as AViews.ViewGroup;
            var nativeView = Control as AViews.View;

            if (nativeView != null && viewGroup != null && viewGroup.ChildCount > 0)
            {
                nativeView = viewGroup.GetChildAt(0);
            }

            if (nativeView == null)
            {
                return;
            }

            var info = AccessibilityNodeInfoCompat.Obtain(nativeView);

            ViewCompat.OnInitializeAccessibilityNodeInfo(nativeView, info);

            System.Diagnostics.Debug.WriteLine(info.ContentDescription);
            System.Diagnostics.Debug.WriteLine(nativeView.ContentDescription);

            Element.SetValue(
                ContentDescriptionEffectProperties.NameAndHelpTextProperty,
                info.ContentDescription);

            Element.SetValue(
                ContentDescriptionEffectProperties.ContentDescriptionProperty,
                nativeView.ContentDescription);
        }
				public override void OnInitializeAccessibilityNodeInfo (View host, AccessibilityNodeInfoCompat info)
				{
					base.OnInitializeAccessibilityNodeInfo (host, info);
					
					// Note that View.onInitializeAccessibilityNodeInfo was introduced in
                    // ICS and we would like to tweak a bit the text that is reported to
                    // accessibility services via the AccessibilityNodeInfo.
					info.Text = parent.Context.GetString (Resource.String.accessibility_delegate_custom_text_added);
				}
Exemple #3
0
        public override void OnInitializeAccessibilityNodeInfo(PlatformView host, AccessibilityNodeInfoCompat info)
        {
            base.OnInitializeAccessibilityNodeInfo(host, info);

            if (Handler?.VirtualView is View v)
            {
                v.UpdateSemanticNodeInfo(info);
            }
        }
Exemple #4
0
        public override void OnInitializeAccessibilityNodeInfo(PlatformView host, AccessibilityNodeInfoCompat info)
        {
            base.OnInitializeAccessibilityNodeInfo(host, info);

            if (Handler?.PlatformView is PlatformView platformView && Handler?.VirtualView != null)
            {
                platformView.UpdateSemanticNodeInfo(Handler.VirtualView, info);
            }
        }
                public override void OnInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfoCompat info)
                {
                    base.OnInitializeAccessibilityNodeInfo(host, info);

                    // Note that View.onInitializeAccessibilityNodeInfo was introduced in
                    // ICS and we would like to tweak a bit the text that is reported to
                    // accessibility services via the AccessibilityNodeInfo.
                    info.Text = parent.Context.GetString(Resource.String.accessibility_delegate_custom_text_added);
                }
Exemple #6
0
            public override void OnInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfoCompat info)
            {
                base.OnInitializeAccessibilityNodeInfo(host, info);

                // Provide information about what action the user can take
                AccessibilityNodeInfoCompat.AccessibilityActionCompat action = new AccessibilityNodeInfoCompat.AccessibilityActionCompat(
                    AccessibilityNodeInfoCompat.ActionClick,
                    host.Resources.GetString(Resource.String.condition_results_accessibility_action));
                info.AddAction(action);

                // Update the selected state
                info.Checkable = true;
                info.Checked   = ((ConditionResultView)host).Highlighted;
            }
            public override void OnInitializeAccessibilityNodeInfo(global::Android.Views.View host, AccessibilityNodeInfoCompat info)
            {
                base.OnInitializeAccessibilityNodeInfo(host, info);

                if (Element == null)
                {
                    return;
                }

                if (info == null)
                {
                    return;
                }

                string?newText = null;
                string?newContentDescription = null;

                var desc = SemanticEffect.GetDescription(Element);

                if (!string.IsNullOrEmpty(desc))
                {
                    // Edit Text fields won't read anything for the content description
                    if (host is EditText et)
                    {
                        if (!string.IsNullOrEmpty(et.Text))
                        {
                            newText = $"{desc}, {et.Text}";
                        }
                        else
                        {
                            newText = $"{desc}";
                        }
                    }
                    else
                    {
                        newContentDescription = desc;
                    }
                }

                var hint = SemanticEffect.GetHint(Element);

                if (!string.IsNullOrEmpty(hint))
                {
                    // info HintText won't read anything back when using TalkBack pre API 26
                    if (XCT.SdkInt >= (int)BuildVersionCodes.O)
                    {
                        info.HintText = hint;

                        if (host is EditText)
                        {
                            info.ShowingHintText = false;
                        }
                    }
                    else
                    {
                        if (host is EditText et)
                        {
                            newText = newText ?? et.Text;
                            newText = $"{newText}, {hint}";
                        }
                        else if (host is TextView tv)
                        {
                            if (newContentDescription != null)
                            {
                                newText = $"{newContentDescription}, {hint}";
                            }
                            else if (!string.IsNullOrEmpty(tv.Text))
                            {
                                newText = $"{tv.Text}, {hint}";
                            }
                            else
                            {
                                newText = $"{hint}";
                            }
                        }
                        else
                        {
                            if (newContentDescription != null)
                            {
                                newText = $"{newContentDescription}, {hint}";
                            }
                            else
                            {
                                newText = $"{hint}";
                            }
                        }

                        newContentDescription = null;
                    }
                }

                if (!string.IsNullOrWhiteSpace(newContentDescription))
                {
                    info.ContentDescription = newContentDescription;
                }

                if (!string.IsNullOrWhiteSpace(newText))
                {
                    info.Text = newText;
                }
            }
Exemple #8
0
 public override void OnInitializeAccessibilityNodeInfo(PlatformView host, AccessibilityNodeInfoCompat info)
 {
     _originalDelegate.OnInitializeAccessibilityNodeInfo(host, info);
 }
            public override void OnInitializeAccessibilityNodeInfo(global::Android.Views.View host, AccessibilityNodeInfoCompat info)
            {
                base.OnInitializeAccessibilityNodeInfo(host, info);

                if (Element == null)
                {
                    return;
                }

                if (info == null)
                {
                    return;
                }

                var hint = SemanticEffect.GetHint(Element);

                if (!string.IsNullOrEmpty(hint))
                {
                    info.HintText = hint;

                    if (host is EditText)
                    {
                        info.ShowingHintText = false;
                    }
                }

                var desc = SemanticEffect.GetDescription(Element);

                if (!string.IsNullOrEmpty(desc))
                {
                    info.ContentDescription = desc;
                }
            }