当我在 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”,并且讲述人将多次读取“WixUI Bmp Banner Edit,WixUI Bmp Banner Edit”。
查看 UI Spy 中的其他 MSI,我似乎不是唯一遇到此问题的人(尝试 UI Spy 中的 Steam 安装程序语言选择屏幕 - 猜测标志名称)。
我想我的问题是:我可以解决这个问题吗?或者这是 WiX 3.0 的一个错误?
When I create a custom dialog in WiX, I put elements down in the order "Text" "Edit" "Text" "Edit" et. For example:
<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"/>
However, when I run the installer, and listen to it in Windows Narrator (or look at it with UI Spy), the elements will be in the order
- NameEdit
- AgeEdit
- ColorEdit
- NameText
- AgeText
- ColorText
The secondry problem is that if there is a banner image (let's call it BitmapBanner, text field WiXUI_Bmp_Banner), then all my edit boxes will be listed as "LabledBy" in UI Spy, and Narrator will read "WixUI Bmp Banner Edit, WixUI Bmp Banner Edit" multiple times.
Looking at other MSIs in UI Spy, I don't appear to be the only one having this issue (try the Steam installer language selection screen in UI Spy - guess the flag names).
I guess my question is: can I fix this, or is this a fault in WiX 3.0?
发布评论
评论(2)
我猜测 Windows 讲述人等辅助软件使用的顺序与控件的 Tab 键顺序相同。 Windows 安装程序从 Control_Next 列读取此顺序安装程序中的“nofollow noreferrer">控制表。
从 Control element 文档来看,Wix 似乎没有 XML属性来显式设置此
Control_Next
字段的值(尽管您可以使用TabSkip
属性将其强制为空)。我将使用 Orca 打开 MSI 文件,然后查看
Control_Next<
Control
表的 /code> 列。如果您可以确认这些值不符合预期顺序,那么至少您知道问题出在 wix 中。您可能还想查看 辅助功能 Windows 安装程序文档。
I'm guessing that the order used by accessibility software like Windows Narrator is the same as the tab order of the controls. Windows installer reads this order from the
Control_Next
column in the Control table in your installer.Judging from the Control element documentation, it looks like Wix does not have an XML attribute to explicitly set the value for this
Control_Next
field (though you can use theTabSkip
attribute to force it to be empty).I would open up the MSI file with Orca and take a look at the
Control_Next
column of theControl
table. If you can confirm that these values aren't in the expected order, then at least you know the problem is in wix.You might also want to take a look at the Accessibility documentation for Windows Installer.
我在这里向 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-in Correctly-sets-the-ui-automation-name-property -对话框中的编辑控件
I reported the same type of issue to the wix team here:
http://sourceforge.net/tracker/index.php?func=detail&aid=2902901&group_id=105970&atid=642717
The wix team told me it is an msi issue and I have verified this.
I went ahead and submitted a bug report to Microsoft here:
https://connect.microsoft.com/VisualStudio/feedback/details/652381/windows-installer-msi-engine-incorrectly-sets-the-ui-automation-name-property-of-edit-controls-in-dialogs