La Etiqueta OPTGROUP

Se utiliza para agrupar opciones relacionadas en un menú desplegable para organizar listas largas de opciones en categorías.
La etiqueta <optgroup>
se utiliza dentro de un elemento <select>
para agrupar opciones relacionadas en un menú desplegable. Es ideal para organizar listas largas de opciones en categorías, mejorando la usabilidad y accesibilidad. Cada grupo tiene una etiqueta descriptiva y no es seleccionable.
Casos de uso comunes:
-
Menús de países agrupados por continentes.
-
Productos clasificados por categorías (ej: electrónicos, ropa).
-
Opciones de configuración con subsecciones.
Sintaxis básica
<select> <optgroup label="Nombre del grupo"> <option>Opción 1</option> <option>Opción 2</option> </optgroup> </select>
Atributos clave:
-
label
: Texto que identifica el grupo (obligatorio). -
disabled
: Si se agrega, desactiva todas las opciones del grupo.
Ejemplos prácticos
Agrupación de países por región
<select> <optgroup label="América"> <option>México</option> <option>Argentina</option> </optgroup> <optgroup label="Europa"> <option>España</option> <option>Francia</option> </optgroup> </select>
Resultado:
Grupo deshabilitado
<select> <optgroup label="Colores primarios"> <option>Rojo</option> <option>Azul</option> </optgroup> <optgroup label="Colores secundarios" disabled> <option>Verde</option> <option>Morado</option> </optgroup> </select>
Resultado:
Los colores secundarios aparecen atenuados y no seleccionables.
Estilización (limitaciones y soluciones)
Los navegadores aplican estilos predeterminados a <optgroup>
, pero la personalización es limitada:
Estilos nativos: Las etiquetas de grupo suelen mostrarse en negrita y no son seleccionables.
CSS personalizado: Puedes modificar fuentes o colores, pero no todos los navegadores lo permiten:
optgroup { font-style: italic; color: #666; }
Alternativas avanzadas: Usa librerías como Select2 o Bootstrap Select para diseños más flexibles.
Accesibilidad
-
Lectores de pantalla: Anuncian la etiqueta del grupo antes de las opciones.
-
Mejores prácticas:
-
Usa
label
descriptivo (ej: "América del Norte", no "Grupo 1"). -
Evita anidar
<optgroup>
(no está permitido en HTML). -
No abuses de los grupos; demasiados pueden confundir al usuario.
-
Errores comunes
Olvidar el atributo label
:
<!-- Incorrecto --> <optgroup> <option>Opción</option> </optgroup>
Anidar grupos:
<!-- Incorrecto --> <optgroup label="Parent"> <optgroup label="Child"> <!-- No válido --> <option>...</option> </optgroup> </optgroup>
Usar <optgroup>
como opción seleccionable: Las etiquetas de grupo no pueden elegirse, solo organizan las opciones.
<optgroup>
vs <option disabled>
<optgroup> |
<option disabled> |
---|---|
Agrupa opciones con una etiqueta. | Simula un encabezado no clicable. |
Semánticamente correcto. | Menos accesible (puede confundir). |
Ejemplo: Países por continente. | Ejemplo: "Seleccione una opción". |
Ejemplo avanzado: Menú de productos
<select id="productos"> <optgroup label="Electrónicos"> <option>Smartphone</option> <option>Laptop</option> </optgroup> <optgroup label="Ropa"> <option>Camisetas</option> <option>Pantalones</option> </optgroup> </select> <script> // JavaScript: Acceder al valor seleccionado document.getElementById("productos").addEventListener("change", function() { console.log("Producto seleccionado:", this.value); }); </script>
Conclusión
La etiqueta <optgroup>
es una herramienta esencial para organizar menús desplegables complejos de manera semántica y accesible. Úsala cuando:
-
Las opciones pueden dividirse en categorías lógicas.
-
Quieres mejorar la experiencia del usuario en formularios largos.
-
Priorizas la accesibilidad para tecnologías de asistencia.
Ejemplo final:
<select> <optgroup label="Fruta"> <option>Manzana</option> <option>Plátano</option> </optgroup> <optgroup label="Verdura"> <option>Zanahoria</option> <option>Brócoli</option> </optgroup> </select>
¡Implementa <optgroup>
para crear formularios más intuitivos y profesionales!