placeholder-label-option
select
要素にプレースホルダーラベルオプションが必要か確認します。
select要素がrequired属性を指定され、multiple属性を指定されず、1である表示サイズを持つ場合、および(もしあれば)select要素の選択肢のリストで最初のoptionの値が空文字列であり、そのoption要素の親ノードがselect要素(かつoptgroup要素でない)場合、そのoptionは、select要素のプレースホルダーのラベルオプションである。
select要素がrequired属性を指定され、multiple属性を指定されず、1である表示サイズを持つ場合、そのselect要素は、プレースホルダーのラベルオプションを持たなければならない。
HTML Living Standard 4.10.7 select要素より引用
❌ 間違ったコード例
<!-- 不正: 最初のoption要素の値が空でない -->
<select required>
<option value="placeholder">プレースホルダー</option>
<option value="option1">オプション1</option>
<option value="option2">オプション2</option>
</select>
<select required size="1">
<option value="placeholder">プレースホルダー</option>
<option value="option1">オプション1</option>
<option value="option2">オプション2</option>
</select>
<!-- 不正: 最初のoption要素の親がoptgroup要素 -->
<select required>
<optgroup label="グループ">
<option value="">プレースホルダー</option>
</optgroup>
<option value="option1">オプション1</option>
<option value="option2">オプション2</option>
</select>
✅ 正しいコード例
<!-- 妥当: プレースホルダーラベルオプションを持っている -->
<select required>
<option value="">プレースホルダー</option>
<option value="option1">オプション1</option>
<option value="option2">オプション2</option>
</select>
<!-- 妥当: プレースホルダーラベルオプションを持っていないが、multiple属性を持っている -->
<select required multiple>
<option value="placeholder">プレースホルダー</option>
<option value="option1">Option 1</option>
<option value="option2">Option 2</option>
</select>
<!-- 妥当: プレースホルダーラベルオプションを持っていないが、1より大きいsize属性を持っている -->
<select required size="2">
<option value="placeholder">プレースホルダー</option>
<option value="option1">Option 1</option>
<option value="option2">Option 2</option>
</select>
Interface
{
"placeholder-label-option": boolean
}
Default Severity
error