讲述者错误的阅读顺序

时间:2010-07-08 08:30:43

标签: c# wpf accessibility narrator

我遇到了微软讲述人的问题。

我有一个像这样的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%”。

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

来自WPF团队成员的回答:

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

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

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

Thx,Rob Relyea

WPF小组