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); }
public override void OnInitializeAccessibilityNodeInfo(PlatformView host, AccessibilityNodeInfoCompat info) { base.OnInitializeAccessibilityNodeInfo(host, info); if (Handler?.VirtualView is View v) { v.UpdateSemanticNodeInfo(info); } }
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); }
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; } }
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; } }