概要
- カテゴリー
- 配置できる場所
-
- 上記カテゴリーの要素が置ける場所。
- 内容モデル
-
- 下記のいずれか。
- Phrasing content。未対応ブラウザでは全部表示される。対応ブラウザでは非表示となり、子孫に含まれる
option
要素のみが選択肢として機能する。 - 0個以上の
option
要素。0個以上のScript-supporting contentの混在も可。
- Phrasing content。未対応ブラウザでは全部表示される。対応ブラウザでは非表示となり、子孫に含まれる
- 下記のいずれか。
- 属性
-
- グローバル属性
- HTML構文におけるタグの省略
-
- 省略不可。
- WAI-ARIA
- 視覚系ブラウザのデフォルトとして期待されるCSS
-
datalist {display: none;}
注記:未対応ブラウザでは、上記のデフォルトは設定されてないので、普通に表示されることになる。
- 制約検証
-
datalist
要素の子孫は、制約検証の対象から除外。
アクセシビリティ関連
- 未対応ユーザーエージェント向け代替コンテンツ:当該要素の内容として
option
要素を子孫に含むPhrasing contentを配置すれば、代替コンテンツとなる(対応ブラウザでは非表示となり、子孫に含まれるoption
要素のみが選択肢として機能する)。
私見・補足
子孫のoption
要素によって、input
要素などにサジェストリストを提供する。
検索フォームのサジェスト機能が典型例。
表示確認
- ソース1
-
<label>datalist例1<input type="text" list="formex" placeholder="datalistサンプル" /></label> <datalist id="formex"> <option>datalistのoptionその1</option> <option>datalistのoptionその2</option> </datalist>
- 表示結果1
- ソース2
-
<label>datalist例2<input type="text" list="formex2" placeholder="datalistサンプル" /></label> <datalist id="formex2"> <label>代替コンテンツのselect要素→ <select> <option selected="selected">datalistのoptionその3</option> <option>datalistのoptionその4</option> </select> </label> </datalist>
- 表示結果2
- ソース3
-
<label>datalist例3<input type="text" list="formex3" placeholder="datalistサンプル" /></label> <datalist id="formex3"> <option label="その5" value="datalistのoptionその5"></option> <option label="その6" value="datalistのoptionその6"></option> </datalist>
- 表示結果3
- ソース4:
input
要素のtype
属性値=range
の場合 -
<label>datalist例4<input type="range" list="formex4" max="1000" min="0" step="10" /></label> <datalist id="formex4"> <option label="0" value="0"></option> <option label="100" value="100"></option> <option label="500" value="500"></option> <option label="1000" value="1000"></option> </datalist>
- 表示結果4
対応ブラウザでは、スライダー式入力コントロールの該当数値の場所に目盛が付いて、そこで止められる。
- ソース5:
input
要素のtype
属性値=color
の場合 -
<label>datalist例5<input type="color" list="formex5" /></label> <datalist id="formex5"> <option label="白" value="#ffffff"></option> <option label="赤" value="#ff0000"></option> <option label="青" value="#0000ff"></option> <option label="黄" value="#ffff00"></option> <option label="黒" value="#000000"></option> </datalist>
- 表示結果5
対応ブラウザでは、当該色を直接選択できるユーザーインターフェースが表示される。