Skip to content

テクニック ARIA2: aria-required プロパティによって必須項目を特定する

このテクニックについて

このテクニックは、次に関連する:

このテクニックは、Accessible Rich Internet Applications (WAI-ARIA) をサポートする技術に適用される。

解説

このテクニックの目的は、(提示を通して必須であることが示されている) フォームフィールドが、フォームの正常送信のために必須であることを、プログラムの指標として提供することである。

要素が必須であるという事実は多くの場合、(テキスト又は非テキストのシンボル、又は入力が必須であることを示すテキスト、又は色/スタイルを介して) 視覚的に提示されるが、これは、フィールド名の一部としてプログラムによる解釈が可能にはならない。

WAI-ARIA aria-required プロパティは、送信前に利用者の入力が必須であることを示す。aria-required プロパティは、true 又は false の値を持つことができる。たとえば、利用者が住所のフィールドに入力しなければならない場合、aria-requiredtrue に設定される。

注記

aria-required="true" の使用は、アスタリスクや他のテキストシンボルがプログラム的にフィールドに関連付けられている場合であっても、一部の支援技術の利用者に対して required プロパティによって補強できるので、有益であるかもしれない。

多くの場合、要素が必須であるという事実は、(コントロールの後の符号や記号のように) 視覚的に提示される。視覚的な提示に加えて aria-required プロパティを使用することは、ユーザエージェントが、この重要な情報をユーザエージェント固有の方法で利用者に伝えることを、はるかに簡単にする。HTML とともに WAI-ARIA ステート及びプロパティを提供する方法については、ARIA in HTML を参照。WAI-ARIA ステート及びプロパティは他の言語とも互換性がある。詳しくはそれらの言語の説明文書を参照。

事例

事例 1: required プロパティが label 要素の中に置かれるアスタリスクによって示されている:

<form>
  <p>Note: * denotes a required field</p>
  <div>
    <label for="usrname">Login name *:</label>
    <input aria-required="true" autocomplete="username" id="usrname" type="text">
  </div>
  <div>
    <label for="pwd">Password *:</label>
    <input aria-required="true" autocomplete="current-password" 
     id="pwd" type="password">
  </div>
  <div>
    <input type="submit" value="Login">
  </div>
</form>

事例 2: required プロパティが label 要素の後に置かれる単語 "required" によって示されている:

<form>
  <div>
    <label for="fname">First name:</label> <span>(required)</span>
    <input aria-required="true" autocomplete="given-name" id="fname" type="text">
  </div>
  <div>
    <label for="mname">Middle name:</label> <span>(required)</span>
    <input autocomplete="additional-name" id="mname" type="text">
  </div>
  <div>
    <label for="lname">Last name:</label> <span>(required)</span>
    <input aria-required="true" autocomplete="family-name" id="lname" type="text">
  </div>
  <div>
    <label for="email">Email address:</label> <span>(required)</span>
    <input aria-required="true" autocomplete="email" id="email" type="text">
  </div>
  <div>
    <label for="zip_post">Zip / Postal code:</label> <span>(required)</span>
    <input aria-required="true" autocomplete="postal-code" id="zip_post" type="text">
  </div>
  <div>
    <input type="submit" value="Next Step">
  </div>
</form>

事例 3: 必須フィールドは、フィールドの周りの赤いボーダーと ::after を使用する CSS によってレンダリングされる星のアイコンで示される。

この事例は role=radio をもつカスタムラジオボタンを使用する。CSS プロパティはフォームの下にある。

<form>
  <label data-required="true" for="acctnum">Account Number</label>
  <input aria-required="true" id="acctnum" type="text">

  <p data-required="true" id="radio_label">
    Please send an alert when balance exceeds $3,000.
  </p>

  <ul aria-required="true" aria-labelledby="radio_label" role="radiogroup">
    <li aria-checked="false" id="rb1" role="radio" tabindex="0">Yes</li>
    <li aria-checked="false" id="rb2" role="radio" tabindex="-1">No</li>
  </ul>
</form>

この事例に対する関連する CSS スタイル定義:

[aria-required=true] {
  border: red thin solid;
}
[data-required=true]::after {
  content: url('/iconStar.gif');
}

関連リソース

推奨を意味するものではない。

検証

手順

必須であることがプレゼンテーションを経由して示される各コントロールに対して:

  1. aria-required 属性が存在するかどうかをチェックする。
  2. aria-required 属性値が、そのユーザインタフェース コンポーネントに対する正しい required ステートであるかどうかをチェックする。

期待される結果

  • チェック 1 及び 2 の結果が真である。
Back to Top