首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按/弹出页面时用屏幕读取器读取当前页标题

按/弹出页面时用屏幕读取器读取当前页标题
EN

Stack Overflow用户
提问于 2020-09-21 14:25:09
回答 1查看 175关注 0票数 0

我正在开发一个应用程序,为盲人或视障人士使用Xamarin.Forms。我有一个标题为X的NavigationPage,当应用程序开始对讲机读取标题X时,我有4页可以导航到A、B、C和D标题。我希望在浏览不同的页面时,屏幕阅读器会读取页面的标题。有可能吗?

例如,如果我打开Android上的对讲机并在设置页面中导航,那么talkback会读取所有的页面标题。我也想做些类似的事。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-22 06:20:36

按/弹出页面时用屏幕读取器读取当前页标题

您可以使用DependencyService实现每个平台上的功能,并调用每个页面的OnAppearing方法中的函数代码。

检查代码:

在共享项目中创建一个接口。

代码语言:javascript
运行
复制
public interface IAccessibilityManager
{
    void sendAccessibility(string speakText);
}

在所需的平台项目中实现接口。

代码语言:javascript
运行
复制
[assembly: Dependency(typeof(DroidAccessibilityImplement))]
namespace App19F_9.Droid
{
    public class DroidAccessibilityImplement : IAccessibilityManager
    {
        public void sendAccessibility(string speakContent)
        {
            AccessibilityManager manager = (AccessibilityManager)Android.App.Application.Context.GetSystemService(Context.AccessibilityService);
            if (manager.IsEnabled)
            {
                AccessibilityEvent _event = AccessibilityEvent.Obtain();
                _event.EventType = EventTypes.Announcement;
                _event.Text.Add(new Java.Lang.String(speakContent));
                manager.SendAccessibilityEvent(_event);
            }
        }
    }
}

从共享代码解析平台实现。

代码语言:javascript
运行
复制
public partial class Page5 : ContentPage
{
    ...
    protected override void OnAppearing()
    {
        base.OnAppearing();
        DependencyService.Get<IAccessibilityManager>().sendAccessibility(this.Title);
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63994283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档