当我在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查看它)时,元素将按顺序
第二个问题是,如果有横幅图像(让我们称之为BitmapBanner,文本字段为WiXUI_Bmp_Banner),那么我的所有编辑框都会在UI Spy中列为“LabledBy”,而讲述者将会读到“WixUI Bmp Banner Edit” ,WixUI Bmp Banner编辑“多次。
在UI Spy中查看其他MSI,我似乎并不是唯一一个遇到此问题的人(尝试在UI Spy中使用Steam安装程序语言选择屏幕 - 猜测标志名称)。
我想我的问题是:我能解决这个问题,还是WiX 3.0中的错误?
答案 0 :(得分:3)
我猜测Windows Narrator等辅助功能软件使用的顺序与控件的Tab键顺序相同。 Windows安装程序会从安装程序中Control table的Control_Next
列中读取此订单。
从Control element文档判断,看起来Wix没有XML属性来显式设置此Control_Next
字段的值(尽管您可以使用TabSkip
属性强制它是空的。)
我会使用Orca打开MSI文件,然后查看Control_Next
表的Control
列。如果您可以确认这些值不符合预期的顺序,那么至少您知道问题出在wix中。
您可能还想查看Windows Installer的Accessibility文档。
答案 1 :(得分:0)
我向wix团队报告了同样类型的问题: http://sourceforge.net/tracker/index.php?func=detail&aid=2902901&group_id=105970&atid=642717
wix团队告诉我这是一个msi问题,我已经验证了这一点。
我继续向Microsoft提交错误报告: https://connect.microsoft.com/VisualStudio/feedback/details/652381/windows-installer-msi-engine-incorrectly-sets-the-ui-automation-name-property-of-edit-controls-in-dialogs