適用 (対象)
Accessible Rich Internet Applications (WAI-ARIA) をサポートするウェブコンテンツ技術。
これは、次の達成基準に関連する達成方法である:
- 達成基準 3.3.1: エラーの特定 (十分な達成方法)
- 達成基準 4.1.3: ステータスメッセージ (より具体的な手法を用いる十分な達成方法)
解説
この達成方法の目的は、入力エラーが発生した場合に支援技術 (AT) に通知することである。aria-live
属性は、エラーメッセージがライブリージョンのコンテナに注入された際に、AT (スクリーンリーダーなど) による通知を可能にする。aria-live
リージョン内部のコンテンツは、テキストが表示されている場所で AT がフォーカスする必要なしに、AT によって自動的に読みあげられる。
ライブリージョンのプロパティを直接適用する代わりに使用できる特殊ケースのライブリージョンのロールも多数ある。
「特殊ケースのライブリージョンのロール」のリンクは、正しくは WAI-ARIA 1.0 Authoring Practices§5.3. Choosing Between Special Case Live Regions となる。しかしながら、この文書は古い文書である。ライブリージョンのロールについては、WAI-ARIA 1.1§5.3.5 Live Region Roles も参照されたい。
事例
事例 1: DOM 内にすでに存在する role=alert をもつコンテナの中にエラーメッセージを注入する
次の例は、aria-live=assertive
を使用しているのと同等の role=alert
を使用する。
例において、ページロード時に DOM に存在する aria-atomic=true
及び aria-live
プロパティ又は alert
ロールをもつ空のエラーメッセージコンテナ要素が存在する。エラーコンテナは、ほとんどのスクリーンリーダーでエラーメッセージが読み上げられるために、ページロード時に DOM に存在しなければならない。aria-atomic=true
は、複数の無効な投稿をした後にエラーメッセージを iOS の Voiceover に読み上げさせるために必要である。
jQuery は、送信時に入力が空であるかどうかをテストし、そうであれば、ライブリージョンコンテナにエラーメッセージを注入するために使用される。新しい送信が試みられるたびに、前のエラーメッセージがコンテナから削除され、新しいエラーメッセージが挿入される。
<script src="http://code.jquery.com/jquery.js"></script> <script> $(document).ready(function(e) { $('#signup').submit(function() { $('#errors').html(''); if ($('#first').val() === '') { $('#errors').append('<p>Please enter your first name.</p>'); } if ($('#last').val() === '') { $('#errors').append('<p>Please enter your last name.</p>'); } if ($('#email').val() === '') { $('#errors').append('<p>Please enter your email address.</p>'); } return false; }); }); </script> <form name="signup" id="signup" method="post" action=""> <p id="errors" role="alert" aria-atomic="true"></p> <p> <label for="first">First Name (required)</label><br> <input type="text" name="first" id="first"> </p> <p> <label for="last">Last Name (required)</label><br> <input type="text" name="last" id="last"> </p> <p> <label for="email">Email (required)</label><br> <input type="text" name="email" id="email"> </p> <p> <input type="submit" name="button" id="button" value="Submit"> </p> </form>
参考リソース
この参考リソースは、あくまでも情報提供のみが目的であり、推薦などを意味するものではない。
- WAI-ARIA Authoring Practices
- HTML5 Accessibility Chops: ARIA role=alert browser support
- Form Labels, ARIA Examples (Experimental)
- MSF&W Accessibility
- WAI-ARIA, Supported States and Properties, aria-describedby
- WAI-ARIA, The Roles model, alert
- HTML5, A vocabulary and associated APIs for HTML and XHTML
検証
手順
role=alert
又はaria-live=assertive
属性が指定された空のエラーコンテナが、ページの読み込み時の DOM に存在することを判断する。- ライブリージョンのコンテンツの表示又更新を引き起こすエラーをトリガーする。
- エラーメッセージが既に存在するエラーコンテナに挿入されたことを判断する。
期待される結果
- 1. 及び 3. の結果が真である。