将 AutomationProperties 设置为导航栏的后退按钮以避免 TalkBack "Unlabeled button"

Set AutomationProperties to back button of the navigation bar to avoid TalkBack's "Unlabeled button"

我正在使用 Xamarin.Fomrs 开发可访问的跨平台应用程序。我正在使用 NavigationPage 来管理导航。当我在第二页并且我想使用导航栏中的按钮返回时,TalkBack 说:"unlabeled button".

如何为这个按钮设置 AutomationProperties?主要目标是根据当前视图设置不同的帮助文本。可以吗

我用这个渲染器实现了我的目标:

[assembly: ExportRenderer(typeof(ContentPage), typeof(AndroidNavigationPageRenderer))]
namespace SZukaldatzen.Droid.Renderers
{
    public class AndroidNavigationPageRenderer : PageRenderer
    {
        public AndroidNavigationPageRenderer(Context context) : base(context)
        {
        }

        protected override void OnElementChanged(ElementChangedEventArgs<Page> e)
        {
            base.OnElementChanged(e);

            Activity context = (Activity)this.Context;
            var toolbar = context.FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);

            toolbar.NavigationContentDescription = "Go back";
        }
    }
}

现在对话说"Go back"选择返回按钮。

已接受的答案对我不起作用。对我有用的(Xamarin 5,Android 11)是这样的:

[assembly: ExportRenderer(typeof(NavigationPage), typeof(NavigationPageCustomRenderer))]
namespace CustomRenderers
{
    public class NavigationPageCustomRenderer : NavigationPageRenderer
    {
        public NavigationPageCustomRenderer(Context context) : base(context) { }

        public override void AddChildrenForAccessibility(IList<Android.Views.View> views)
        {
            base.AddChildrenForAccessibility(views);

            var backButton = views.FirstOrDefault(x => x is Android.Widget.ImageButton && string.IsNullOrEmpty(x.ContentDescription));
            if (backButton != null)
            {
                backButton.ContentDescription = "Go back";
            }
        }
    }
}

对于 AndroidX,我使用了以下内容:

        protected override void OnElementChanged(ElementChangedEventArgs<Page> e)
        {
           base.OnElementChanged(e);

           Activity context = (Activity)this.Context;
           var toolbar = context.FindViewById<AndroidX.AppCompat.Widget.Toolbar>(Resource.Id.toolbar);

           if (toolbar != null)
           {
              toolbar.NavigationContentDescription = "Go back";
           }
        }