代码之家  ›  专栏  ›  技术社区  ›  Vlad

叙述者阅读顺序错误

  •  0
  • Vlad  · 技术社区  · 14 年前

    我对“微软讲述人”有意见。

    我有一个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>
    

    文本显示正确;但是叙述者是这样读的:“我想多付百分之零点”,而不是期望的“我想多付百分之零点”。

    我做错什么了吗?因此,叙述者可以读完整个文本。有没有解决问题的方法,而不需要更改实际文本?

    2 回复  |  直到 9 年前
        1
  •  1
  •   Community CDub    7 年前

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

        2
  •  1
  •   Vlad    9 年前

    WPF团队成员的回答:

    WPF支持一个文本控件,该控件可以使子控件与其文本混合。UI自动化树没有。如果子编辑控件位于父控件的文本中,则无法对自动化客户端进行描述。WPF不能轻易解决这个问题——这是自动化体系结构的一个限制。

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

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

    THX,Rob Relyea

    WPF团队