Windows手机应用程序,如何自动使用解说员阅读页面标题?

时间:2015-12-25 05:25:50

标签: windows accessibility uwp narrator

我正在手机上开发Windows通用应用程序(XAML,C#),并且可以为讲述人提供辅助功能。有没有人知道如何在打开页面时自动获取叙述者以阅读页面标题?

我尝试在页面中设置automationproperties.name但是没有工作:

<Page
x:Class="xxxxxx"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
AutomationProperties.Name="Page title to be read"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

2 个答案:

答案 0 :(得分:0)

当您在列表中选择控件或编辑文本框时,将应用Narrator for UWP的功能。如果您想在打开应用程序时阅读内容,您应该使用SpeechSynthesizer API,这非常容易实现:

1.-在XAML中添加媒体元素

    <MediaElement x:Name="MediaElement"/>

2.-然后在页面后面的代码中:

 public MainPage()
    {
        this.InitializeComponent();
        this.Loaded += MainPage_Loaded;
    }

    private void MainPage_Loaded(object sender, RoutedEventArgs e)
    {
        ReadTitle();
    }

    private async void ReadTitle()
    {
        var voice = SpeechSynthesizer.AllVoices.First();
        SpeechSynthesizer reader = new SpeechSynthesizer() { Voice = voice };
        var text= this.GetValue(AutomationProperties.NameProperty) as String; 
        await reader.SynthesizeTextToStreamAsync(text);

        MediaElement.SetSource(stream, stream.ContentType);
        MediaElement.Play();
    }

您可以阅读将字符串传递给读者的所有内容。

答案 1 :(得分:0)

你需要通过叙述者进行查看。我不相信你可以在Page Class中声明Name属性。在您的网页内容中尝试这样的内容:

<HyperlinkButton
    NavigateUri="www.bing.com"
    AutomationProperties.AutomationID="bing url" //Not Required to work
    AutomationProperties.Name="Go to the Bing Homepage"//Narrator will read this
    <StackPanel>
       <TextBlock Text="Bing Dot Com" />
       <TextBlock Text="www.bing.com" />
    <StackPanel>
</HyperlinkButton>

https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.automation.peers.accessibilityview

编辑:您可能还需要以编程方式将焦点设置在项目上才能使其正常工作