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

发布于 2024-09-10 19:03:46 字数 1158 浏览 5 评论 0 原文

当我在 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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

救赎№ 2024-09-17 19:03:46

我猜测 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 the TabSkip 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 the Control 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.

记忆里有你的影子 2024-09-17 19:03:46

我在这里向 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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文