讲述人中的错误阅读顺序
Posted
技术标签:
【中文标题】讲述人中的错误阅读顺序【英文标题】: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%”。
我做错了吗?因此,叙述者本可以阅读整个文本。有没有办法解决这个问题而无需更改实际文本?
【问题讨论】:
【参考方案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 认为用户的系统上主要有讲述人,因此任务是明确支持讲述人。我想知道是否有关于辅助功能支持软件的使用统计信息(我会尝试在谷歌中找到它。)无论如何,谢谢你的建议!以上是关于讲述人中的错误阅读顺序的主要内容,如果未能解决你的问题,请参考以下文章