【问题标题】:Wrong reading order in Narrator讲述人中的错误阅读顺序
【发布时间】:2011-03-13 05:23:22
【问题描述】:

我在使用 Microsoft 讲述人时遇到问题。

我有一个这样的 WPF 片段:

<Window
    x:Class="InlineEditbox.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Narrator test" SizeToContent="WidthAndHeight">
    <TextBlock>
        <Run xml:space="preserve">I want to pay </Run>
        <InlineUIContainer>
            <TextBox Width="70" HorizontalContentAlignment="Right">0</TextBox>
        </InlineUIContainer>
        <Run xml:space="preserve"> % more</Run>
    </TextBlock>
</Window>

文字显示正确;然而,旁白这样读:“我想多付 0%,零”而不是预期的“我想多付 0%”。

我做错了吗?因此,叙述者本可以阅读整个文本。有没有办法解决这个问题而无需更改实际文本?

【问题讨论】:

    标签: c# wpf accessibility narrator


    【解决方案1】:

    WPF 团队成员的回答:

    WPF 支持文本控件,该控件可以将子控件与其文本混合。 UI 自动化树没有。无法向自动化客户端描述子编辑控件位于父文本中的位置。 WPF 无法轻松解决此问题 - 这是自动化架构的限制。

    要解决此问题,可以将文本放入单独的控件中,以一种转化为自动化的方式描述顺序:

    <TextBlock>I want to pay</TextBlock>
    <TextBox> 0 </TextBox>
    <TextBlock>% more</TextBlock>
    

    谢谢,Rob Relyea

    WPF 团队

    【讨论】:

    • 非常感谢权威解答!
    【解决方案2】:

    不要使用 narrator,它是一个非常基本的屏幕阅读程序,通常不被需要每天使用屏幕阅读器的人使用。有关要使用的屏幕阅读器的建议,请参阅以下问题。 Which screen reader would be best to test site accessibility and how to configure that?

    【讨论】:

    • 我自己不使用讲述人;但是我需要在我的代码中实现辅助功能,讲述人支持就是其中之一:-(
    • 在这种情况下,我建议您与负责功能要求的人员交谈,并向他们解释叙述者的支持是不可持续的。如果您必须支持屏幕阅读器,我建议您从nvda-project.org 获得 NVDA,因为它是免费和开源的。
    • 在大型商业公司工作,相当复杂。 PM 认为用户的系统上主要有讲述人,因此任务是明确支持讲述人。我想知道是否有关于辅助功能支持软件的使用统计信息(我会尝试在谷歌中找到它。)无论如何,谢谢你的建议!
    猜你喜欢
    • 2019-01-08
    • 1970-01-01
    • 2011-10-29
    • 2020-09-23
    • 1970-01-01
    • 1970-01-01
    • 2013-09-19
    • 1970-01-01
    • 2012-03-27
    相关资源
    最近更新 更多