屏幕阅读器的WiX UI元素排序错误

时间:2010-07-21 16:22:55

标签: windows-7 wix accessibility wix3

当我在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讲述人中收听它(或使用UI Spy查看它)时,元素将按顺序

  • NameEdit
  • AgeEdit
  • ColorEdit
  • NameText
  • AgeText
  • ColorText

第二个问题是,如果有横幅图像(让我们称之为BitmapBanner,文本字段为WiXUI_Bmp_Banner),那么我的所有编辑框都会在UI Spy中列为“LabledBy”,而讲述者将会读到“WixUI Bmp Banner Edit” ,WixUI Bmp Banner编辑“多次。

在UI Spy中查看其他MSI,我似乎并不是唯一一个遇到此问题的人(尝试在UI Spy中使用Steam安装程序语言选择屏幕 - 猜测标志名称)。

我想我的问题是:我能解决这个问题,还是WiX 3.0中的错误?

2 个答案:

答案 0 :(得分:3)

我猜测Windows Narrator等辅助功能软件使用的顺序与控件的Tab键顺序相同。 Windows安装程序会从安装程序中Control tableControl_Next列中读取此订单。

Control element文档判断,看起来Wix没有XML属性来显式设置此Control_Next字段的值(尽管您可以使用TabSkip属性强制它是空的。)

我会使用Orca打开MSI文件,然后查看Control_Next表的Control列。如果您可以确认这些值不符合预期的顺序,那么至少您知道问题出在wix中。

您可能还想查看Windows Installer的Accessibility文档。

答案 1 :(得分:0)