1

我遇到了 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%”。

难道我做错了什么?因此,叙述者可能已经阅读了整个文本。有没有办法解决这个问题而无需更改实际文本?

4

2 回答 2

1

不要使用 narrator,它是一个非常基本的屏幕阅读程序,通常不被需要每天使用屏幕阅读器的人使用。有关要使用的屏幕阅读器的建议,请参阅以下问题。哪种屏幕阅读器最适合测试网站可访问性以及如何配置它?

于 2010-07-09T13:51:37.853 回答
1

WPF 团队成员的回答:

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

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

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

谢谢,Rob Relyea

WPF 团队

于 2015-11-17T23:04:38.877 回答