1

Microsoft ナレーターに問題があります。

次のような 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パーセント多く支払いたい」ではなく、「0パーセント多く支払いたい」と読みます。

私は何か間違ったことをしていますか?その結果、ナレーターはテキスト全体を読むことができたはずです。実際のテキストを変更せずに問題を回避する方法はありますか?

4

2 に答える 2

1

ナレーターは使用しないでください。ナレーターは非常に基本的なスクリーン リーダー プログラムであり、通常、スクリーン リーダーを日常的に使用する必要がある人には使用されません。使用するスクリーン リーダーに関する推奨事項については、次の質問を参照してください。サイトのアクセシビリティをテストするのに最適なスクリーン リーダーとその構成方法は?

于 2010-07-09T13:51:37.853 に答える
1

WPF チーム メンバーからの回答:

WPF は、子コントロールをそのテキストと混在させることができるテキスト コントロールをサポートします。UI オートメーション ツリーにはありません。子エディット コントロールが親のテキスト内にあることをオートメーション クライアントに説明する方法はありません。WPF はこれを簡単に修正できません。これは自動化アーキテクチャの制限です。

回避策として、テキストを別のコントロールに配置して、自動化に変換される方法で順序を説明できます。

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

Thx、ロブ・レリア

WPF チーム

于 2015-11-17T23:04:38.877 に答える