【问题标题】:WPF Live-Regions just for Narrator?WPF Live-Regions 仅适用于讲述人?
【发布时间】:2019-01-27 23:13:33
【问题描述】:

我有一个带有 AutomationProperties.LiveSettings="Assertive" 的文本块 (ContentTextBlock)。我只是在测试和检查此功能的有用性。而且......到目前为止我很失望。

private void Button_Click(object sender, RoutedEventArgs e)
{
   ContentTextBlock.Text += " test";
    var peer = UIElementAutomationPeer.FromElement(ContentTextBlock);
    if(peer == null)
    {
    peer = UIElementAutomationPeer.CreatePeerForElement(ContentTextBlock);
peer.RaiseAutomationEvent(AutomationEvents.LiveRegionChanged);
    }
peer.RaiseAutomationEvent(AutomationEvents.LiveRegionChanged);
}

使用“讲述人”时,它会像宣传的那样工作。每当单击按钮时,讲述人都会宣布 TextBlock 文本(“测试”“测试测试”“测试测试测试”)......但是当我使用 NVDA 或 JAWS 时,没有任何反应,尽管屏幕阅读器版本相对最新。他们真的没有添加任何对 live-regions 的支持,还是我错过了一个重要的点?

【问题讨论】:

    标签: c# wpf accessibility screen-readers


    【解决方案1】:

    虽然我没有设法让实时区域工作,但我找到了另一种解决方法:

    Tolk by Davy Kager

    Tolk 是一个图书馆,它可以在其他人中

    • 检测正在运行的受支持的屏幕阅读器(如果有)
    • 将字符串传递给屏幕阅读器的语音引擎和盲文。
    • 还支持 SAPI

    要将 Tolk 包含在您的 C# 项目中,请从上面的链接下载它,然后将 tolk.cs(来自 src/dotnet)包含在您的项目中,然后将 tolk.dll(位于 bin)放在文件夹中您的可执行文件(或 PATH 变量中的某处)。确保 dll 版本与您的 CPU 目标 (x86/x64) 匹配。对 lib 目录中的 dll 执行相同的操作。然后就可以根据examples文件夹下的代码来使用了。

    PS。 Tolk 也适用于 Win 7,所以这是一个奖励。 WPF 的 live-regions 仅从 Win 8 开始支持。

    【讨论】:

      猜你喜欢
      • 2021-01-01
      • 2012-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-23
      • 2011-03-13
      相关资源
      最近更新 更多