Неправильный порядок чтения в Рассказчике - PullRequest
0 голосов
/ 08 июля 2010

У меня проблема с Microsoft Narrator.

У меня есть такой фрагмент WPF:

<Window
    x:Class="InlineEditbox.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Narrator test" SizeToContent="WidthAndHeight">
    <TextBlock>
        <Run xml:space="preserve">I want to pay </Run>
        <InlineUIContainer>
            <TextBox Width="70" HorizontalContentAlignment="Right">0</TextBox>
        </InlineUIContainer>
        <Run xml:space="preserve"> % more</Run>
    </TextBlock>
</Window>

Текст отображается правильно;однако Рассказчик читает это так: «Я хочу платить больше процентов, ноль» вместо ожидаемого «Я хочу платить больше на 0 процентов».Рассказчик мог бы прочитать весь текст только потому.Есть ли способ обойти проблему без необходимости изменения фактического текста?

Ответы [ 2 ]

1 голос
/ 18 ноября 2015

Ответ члена команды WPF:

WPF поддерживает текстовый элемент управления, который может содержать дочерние элементы управления, смешанные с его текстом.Дерево автоматизации пользовательского интерфейса - нет.Невозможно описать клиентам автоматизации, где дочерний элемент управления находится в тексте родителя.WPF не может легко это исправить - это ограничение архитектуры автоматизации.

Чтобы обойти это, можно поместить текст в отдельные элементы управления, чтобы описать порядок так, что это переводится на автоматизацию:

<TextBlock>I want to pay</TextBlock>
<TextBox> 0 </TextBox>
<TextBlock>% more</TextBlock>

Спасибо, Роб Рельея

Команда WPF

1 голос
/ 09 июля 2010

Не используйте рассказчик, это очень простая программа для чтения с экрана, которая обычно не используется людьми, которым необходимо ежедневно использовать программу чтения с экрана. См. Следующий вопрос для рекомендаций по использованию программ чтения с экрана. Какая программа для чтения с экрана подойдет для проверки доступности сайта и как это настроить?

...