2016-05-12 7 views
0

のために働いている私は、スクリーンリーダーを作るために次のコードを追加した警告メッセージの読み取り:役割は初回のみ

<aside aria-live="assertive" aria-atomic="true" role="alert" ng-show="login.hasWarning();" translate="{{message}}"></aside> 
 

 
<form> 
 
    <!--form content--> 
 
</form>

のそれはのための完璧な作品初めてエラーを再コミットした場合、更新されたエラーメッセージは再び読み込まれません。私は何が欠けていますか?

ありがとうございます。

答えて

1

もう一度同じエラーメッセージを表示していますか?のように、最初に "エラー101"を押して、その後、 "エラー101"を2回押すと?

もしそうなら: JAWS/VoiceOver/NVDAは、ライブリージョンに対してのみ更新を読み込みます。テキストを同じテキストに置き換えた場合は、更新としてカウントされません。 新しいエラーメッセージを押す前に、テキストを空の文字列に置き換えます。 JAWSは、ブラウザーとユーザー設定に応じて、「空白」と言うことがあります。

+0

HI Juli、お返事ありがとうございます。 –

+0

すべての主要なスクリーンリーダー(JAWS/VoiceOver/NVDA)がそうすることを選択した理由はありますか?そして、スクリーンリーダーがそれを再び読むように、メッセージの末尾にランダムな空白スペースを追加するような方法がありますか? –

+0

これはWAI-ARIA仕様です。 (https://www.w3.org/TR/wai-aria/states_and_properties#aria-live)SRは、ライブリージョンの変更を読み取ります。更新が変更でない場合、SRはそれを読み取りません。メッセージの先頭と末尾に空白を追加すると、VoiceOverで動作する可能性があり、おそらくJAWSでは動作しません。 JAWSが "Error 101"の代わりに "blank error 101"と言っていいかもしれないなら、$( "[aria-live]")を実行してください。 $( "[aria-live]")。テキスト( "Error 101");少なくとも読まれるだろう。 – Juli

関連する問題