Элементы интерфейса WiX в неправильном порядке для программ чтения с экрана - PullRequest
3 голосов
/ 21 июля 2010

Когда я создаю пользовательский диалог в 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

Secondryпроблема в том, что если есть изображение баннера (назовем его BitmapBanner, текстовое поле WiXUI_Bmp_Banner), то все мои поля редактирования будут перечислены как «LabledBy» в шпионе пользовательского интерфейса, и диктор будет читать «WixUI Bmp Banner Edit, WixUI Bmp Banner Edit»"несколько раз.

Глядя на другие MSI в UI Spy, я не являюсь единственным, у кого есть эта проблема (попробуйте экран выбора языка установщика Steam в UI Spy - угадайте имена флагов).

Наверное, мой вопрос: можно ли это исправить или это ошибка в WiX 3.0?

Ответы [ 2 ]

3 голосов
/ 22 июля 2010

Я предполагаю, что порядок, используемый программами для специальных возможностей, такими как Windows Narrator, такой же, как порядок вкладок элементов управления. Установщик Windows считывает этот порядок из столбца Control_Next в управляющей таблице в установщике.

Судя по документации Control element , похоже, что Wix не имеет атрибута XML для явной установки значения для этого поля Control_Next (хотя вы можете использовать атрибут TabSkip для его принудительной установки быть пустым).

Я бы открыл файл MSI с помощью Orca и взглянул бы на столбец Control_Next таблицы Control. Если вы можете подтвердить, что эти значения не в ожидаемом порядке, то, по крайней мере, вы знаете, что проблема в wix.

Возможно, вы также захотите взглянуть на документацию Специальные возможности для установщика Windows.

0 голосов
/ 20 марта 2011

Я сообщил о такой же проблеме команде 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...