【optgroupタグ】option要素をグループ化してみよう!「HTML・解説・初心者向け」- ノブレコ

HTML optgruop 解説

★<optgroup>タグの特徴

・タグのカテゴリ ―― <select>要素の子要素。

・コンテンツモデル ―― 0個以上の<option>要素。

・タグの省略 ―― 開始タグは必須。(終了タグの省略について、直後に他の<optgroup>要素が存在する場合か、親要素である<select>要素が他の内容を持っていない場合は省略可能)

・使用可能な親要素 ―― <select>要素。

・グローバル属性を持つ。

・ARIAロール ―― 標準でgroupロールを持つ。

<optgroup>の説明

<optgroup>とは

<select>要素の子要素として使用するタグで、メニューの選択肢となる<option>要素をグループ化するためのタグです。

<optgruop>要素を使用する際は、そのグループごとに「label属性」を使ってグループ名を付けることが必須です。

■使用目的

<select>要素の中の<option>要素をグループ化する際に使用します。

特にセレクトボックス(プルダウンメニュー)での選択肢が多い場合に、グループ化します。

グループ化することで、選択肢の項目が一目で見やすくなったり、選択する際にユーザーの理解度も高める効果があります。

<optgroup>タグに対応したブラウザでは、<option>要素で指定したセレクトボックスの選択肢を、階層化して表示することができます。

階層化する際に必須なのが、label属性で、その属性値で指定した名前が第一階層となり、第二階層に分類されるのが<option>要素で指定した選択肢という構造になります。

■使える属性

・disabled
・labal

使用上の注意点

① labal属性は必須。

ブラウザのインターユーザーフェース上にラベル名を表示させたい場合は必ず指定します。

ラベルでグループ名を表示することで、グループ名と選択肢をセットになり、見やすいセレクトボックスの構造にできます。

② グループに属さない要素も混在させれる。

例えば、<optgroup>要素の中の、<option>要素で、「その他」のような明確なグループ名がないようなジャンルも入れることができます。

内容モデル

<optgroup>要素の内容のモデルは「0個以上のoption要素」です。

この要素に<option>要素以外を入れることはできません。また<optgroup>要素を入れ子にすることもできません。

内容モデルが0個以上のoption要素なので、中にoption要素を入れることなく、空の<optgroup>要素だけを使うこともできます。

空で使うケースとして、スマートフォン用のサイトで<select>要素の末尾に空で使われていることがありました。これは以前のiosのsafariで、option要素のテキストが切れてしまうという問題に対しての対処で、そのバッドノウハウとしてです。

アクセシビリティでの注意点

<optgroup>要素は、標準でgroupロールを持っています。

スクリーンリーダーなどの多くは、ラベルを読み上げた後に「グループ」などと読み上げて、その選択肢のグループ名が分かるように伝えます。

<optgroup>の記述例

■基本的な使用例

★HTML

HTML optgroup 基本 記述例

■実行結果

リザルトの通り、<option>要素で指定した選択肢の上に、<optgroup>要素でラベル付けしたラベル名が表示されます。

ラベル名と選択肢が分かれてグループ化できるので、非常に見栄えがよくなり、ユーザーの操作もしやすくなります。

まとめ

この記事では、<optgroup>タグについての解説をいたしました。

このタグは、<select>要素の中で使う、<option>要素の選択肢をグループ化し、そのグループにラベル名を付けるためのタグです。基本的にはlabel属性の使用は必須と覚えておきましょう。

上記の内容を覚えていれば、このタグの使用に困ることはありません。

プルダウンメニューの選択肢が多くなるといった場合などは、是非このタグを使ってグループ化してまとめてみてください。

ユーザーの使い勝手もグッと上がりますよ。

この記事が少しでも皆さんのお役に立てれば幸いです。

最後まで読んでいただき、ありがとうございました。またなん✨

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA