2016-04-20 1 views
0

私はモバイルアプリケーションにChrome Voxスクリーンリーダーを使用しています。この読者は、role="alert"のすべてのエラーspanタグを読み込みます。最初のエラー(role = 'alert')のみを読んでほしいです。たとえば、Gmailアカウントの登録ページが表示されます。このシナリオをどのように達成できますか?スクリーンリーダーを停止して、role = "alert"のすべてのエラーspanタグを読み込む方法はありますか?

+0

attrセレクタをお探しですか? https://api.jquery.com/attribute-equals-selector/すなわち$( "[role = 'alert']")? –

+0

必要な要素の実行時に属性role = 'alert'を追加する必要があります。 –

+0

A11yは、多くのdiv要素が存在しても、最初のrole = 'alert'要素のみを読み取ります。 A11yは、多くのspan要素が存在するにもかかわらず、last role = 'alert'要素のみを読み込みます。だから、最初の要素だけを読み込むようにdivにspanを変更してみることができます。 –

答えて

0

エラーの各入力の横にスパンを配置している場合、実際にはrole = alertではなくIDであるべきです。次に、入力にはaria-describedby =そのIDが必要です。おそらく、エラーがあって、そこにフォーカスしているか、最初のエラーに関連する入力、選択などに焦点を当てたメッセージアラートを持つことが必要です。

フォームの上部にエラーボックスを表示したい要約ではエラーに焦点を当て、入力を指すアンカー(エラーを説明するテキスト)のリストを作成することができます。アラートの役割は必要ありません。

エラーが発生したことをユーザーに警告したい場合は、role = alertおよびaria-live = assertiveのコンテナにこれを示すフレーズを入れて、最初の入力エラーに集中できます。

+0

Nickに感謝、私はaria-describeby属性で試しています。それは私が必要とするようにうまく動作しています。しかし、フォーム内の別の入力コントロールに移動して、aria-describedbyを持つ同じ入力に戻ってくると、もう一度読み込まれません。 – Vishwakant

+0

私は、ChromeVoxは真のエンドユーザーにとってはあまり一般的ではないスクリーンリーダーではないことに注意しましょう。アリアなどの機能ではそれほど良くないことに注意してください。 http://webaim.org/discussion/mail_thread?thread=5758 http://webaim.org/projects/screenreadersurvey6/ .3 webaimの現在のアンケートに回答した回答者の割合は、ChromeVox.on Desktopを使用していると言われており、モバイルデバイス用には記載されていません。 現在のところ、携帯電話の主な候補者は です。VoiceOver 56.7% Android用のTalkBack 17.8% ニュアンストーク\t 4.5% –

関連する問題