我遇到了微软讲述人的问题。
我有一个像这样的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 :(得分: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小组