<optgroup>: The OPTGROUP Element
Last updated: 2026-10-13
<optgroup>The OPTGROUP Element
Groups options inside a select, shown as a non-selectable group label.
| Category | Forms |
|---|---|
| Content Model | Flow content |
| Allowed Parents | Any element that accepts flow content |
| Content Tag | Yes — requires closing </optgroup> tag |
| Status | Standard |
📝 Syntax
<select>
<optgroup label="Fruits">
<option>Apple</option>
</optgroup>
</select>
⚙️ Attributes
This element supports the global attributes plus the following:
| Attribute | Value | Description |
|---|---|---|
label | The group's label text (required). | |
disabled | Disables all options in the group. |
▶ Example
Edit the code below and see the live result in the playground:
🌐 Browser Support
| Browser | |||||
|---|---|---|---|---|---|
| <optgroup> | ✓ v1 | ✓ v12 | ✓ v1 | ✓ v1 | ✓ v1 |
| Supported in all major browsers | |||||
Tip: optgroup cannot be nested, and its options must stay inside it.
❓ FAQ
QWhat does optgroup do?
AInside a
<select>, <optgroup> groups <option> elements, with the label attribute shown as the group caption (e.g. North, East). Group captions are not selectable — they aid scanning and make long lists far more readable.QCan optgroup be nested?
ANo — the spec allows one level only: optgroup may contain options but not other optgroups; nesting is invalid HTML. For two-level-plus taxonomies, use prefixed option labels or a custom component.
QIs the optgroup label submitted?
ANo. Only the selected option's value is submitted; the group caption is display-only and takes no part in validation. Disabling the whole optgroup (disabled attribute) disables all its options at once.
🏷️ Related Tags
💡 Related Cases
More case studies coming soon — check back later.