屏幕阅读器中WiX UI元素顺序错误

4

当我在WiX中创建自定义对话框时,我会按照“文本”、“编辑”、“文本”、“编辑”的顺序放置元素。例如:

<Control Id="NameText" Type="Text" X="25" Y="50" Width="100" Height="10" Text="Enter Name:"/>
<Control Id="NameEdit" Type="Edit" X="25" Y="60" Width="100" Height="15" Text="jo_bob55"/>
<Control Id="AgeText" Type="Text" X="25" Y="80" Width="100" Height="10" Text="Enter Age:"/>
<Control Id="AgeEdit" Type="Edit" X="25" Y="90" Width="100" Height="15" Text="0"/>
<Control Id="ColorText" Type="Text" X="25" Y="110" Width="100" Height="10" Text="Enter your favorite color:"/>
<Control Id="ColorEdit" Type="Edit" X="25" Y="120" Width="100" Height="15" Text="red"/>

然而,当我运行安装程序并使用Windows Narrator(或使用UI Spy查看)时,元素将按以下顺序排列:
  • NameEdit
  • AgeEdit
  • ColorEdit
  • NameText
  • AgeText
  • ColorText
第二个问题是,如果存在横幅图像(我们称之为BitmapBanner,文本字段WiXUI_Bmp_Banner),则所有编辑框都将在UI Spy中被列为“LabledBy”,Narrator会多次读取“WixUI Bmp Banner Edit,WixUI Bmp Banner Edit”。
查看UI Spy中的其他MSI,我似乎不是唯一遇到这个问题的人(尝试在UI Spy中选择Steam安装程序语言选择屏幕 - 猜测标志名称)。
我的问题是:我能解决这个问题吗?还是这是WiX 3.0的错误?
2个回答

4
我猜测像Windows Narrator这样的辅助软件使用的顺序与控件的选项卡顺序相同。Windows安装程序从安装程序中Control表Control_Next列中读取此顺序。
Control元素文档来看,Wix似乎没有XML属性来明确设置此Control_Next字段的值(尽管可以使用TabSkip属性强制将其设置为空)。
我会使用Orca打开MSI文件并查看Control表的Control_Next列。如果您可以确认这些值不按预期顺序排列,那么至少您知道问题出在wix中。
您可能还想查看Windows Installer的可访问性文档。

如果我有足够的声望,我会投赞成票的。 我在 Orca 中检查了 .msi 文件,但元素的顺序是正确的。然而,如果我去对话框预览,并在 UI Spy 中检查结果,那么顺序又乱了。咳,甚至在 Orca 中,我的编辑框的文本描述也是正确的。我认为这可能没有解决办法。 - Chris65536


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接