Técnica HTML WCAG 2.2
H85Agrupar las opciones de una lista desplegable con optgroup
Nombre oficial en el W3C: Usar optgroup para agrupar elementos option dentro de un select
En pocas palabras
Cuando una lista desplegable tiene grupos de opciones, se agrupan con el elemento optgroup y un nombre para cada grupo. No se separan con opciones falsas como «-------». Así el navegador y los lectores de pantalla reconocen los grupos y la lista se recorre mejor.
Por qué es importante
Una lista larga, como la de servicios de un ayuntamiento, cuesta de recorrer. Los grupos ayudan a encontrar antes lo que se busca.
Si los grupos se marcan con opciones de relleno («--- Deportes ---»), el lector de pantalla (programa que lee en voz alta la pantalla) las lee como opciones normales. Además, el usuario puede elegirlas por error.
Cómo se hace
- Dentro del
<select>, envuelva cada grupo de opciones en un<optgroup>. - Ponga el nombre del grupo en su atributo
label:label="Deportes". - No anide un
<optgroup>dentro de otro: solo se admite un nivel. - No use opciones vacías ni con guiones para separar.
- Si el grupo es clave para entender una opción, escriba también un texto de opción que se entienda solo.
Cómo comprobarlo
- Abra cada lista desplegable y mire si sus opciones forman grupos.
- Revise el código (F12): cada grupo debe estar en un
<optgroup>conlabel. - Busque opciones falsas usadas como separador o título y elimínelas.
- Con un lector de pantalla, recorra la lista y confirme que se anuncian los grupos.
Ejemplo
La lista de actividades municipales está dividida en dos grupos con nombre.
<label for="actividad">Actividad</label>
<select id="actividad" name="actividad">
<optgroup label="Deportes">
<option>Natación</option>
<option>Pilates</option>
</optgroup>
<optgroup label="Cultura">
<option>Taller de teatro</option>
<option>Club de lectura</option>
</optgroup>
</select>
Ver el texto completo del W3C (traducción al español)
Esta es una traducción no oficial al español de la técnica H85 de Techniques for WCAG 2.2, del W3C. Puede contener errores. El único documento oficial y normativo es la versión original en inglés, publicada en el sitio web del W3C.
Aplicabilidad
Páginas HTML que recogen datos introducidos por el usuario.
Descripción
El objetivo de esta técnica es agrupar los elementos de una lista de selección. Una lista de selección es un conjunto de valores permitidos para un control de formulario, como una lista de selección múltiple o un cuadro combinado. Con frecuencia, las listas de selección contienen grupos de opciones relacionadas. Esos grupos deben identificarse semánticamente, en lugar de delimitarse con entradas «falsas» en la lista, por ejemplo: un elemento option que solo contiene una serie de guiones para crear una línea horizontal. Identificar semánticamente los grupos de opciones ayuda a dividir visualmente las listas largas, de modo que los usuarios puedan localizar con más facilidad lo que les interesa.
En HTML, el elemento select se utiliza para crear tanto listas de selección múltiple como cuadros combinados. Cada una de las opciones permitidas se indica con un elemento option. Para agrupar opciones, utilice el elemento optgroup con los elementos option relacionados dentro de él. Etiquete el grupo con el atributo label para que los usuarios sepan qué van a encontrar dentro del grupo.
El elemento optgroup debe estar directamente dentro del elemento select, y los elementos option directamente dentro del optgroup. Es posible que un elemento select contenga a la vez elementos option sueltos y grupos optgroup, aunque quien desarrolla debería plantearse si eso es realmente lo que pretende al utilizarlo. No es posible anidar el elemento optgroup, por lo que dentro de un select solo puede haber un nivel de agrupación.
Si la información de agrupación es esencial para comprender la lista, quien desarrolla puede definir etiquetas de option que se entiendan incluso cuando el lector de pantalla no presente la información de agrupación que proporciona optgroup.
Ejemplos
El siguiente cuadro combinado recoge datos sobre comidas favoritas. Agruparlas por tipo permite a los usuarios seleccionar su preferencia más rápidamente.
<form action="/favorite-food/" method="post">
<label for="food">What is your favorite food?</label>
<select id="food" name="food">
<optgroup label="Fruits">
<option value="1">Apples</option>
<option value="2">Bananas</option>
<option value="3">Peaches</option>
</optgroup>
<optgroup label="Vegetables">
<option value="4">Broccoli</option>
<option value="5">Carrots</option>
<option value="6">Cucumbers</option>
</optgroup>
<optgroup label="Baked Goods">
<option value="7">Apple Pie</option>
<option value="8">Bagels</option>
<option value="9">Chocolate Cake</option>
</optgroup>
</select>
</form>
El siguiente ejemplo muestra cómo una lista de selección múltiple puede hacer uso del elemento optgroup.
<form action="/animals/" method="post">
<label for="animals">Pick your favorite animals:</label>
<select id="animals" multiple name="animals" size="10">
<optgroup label="Dinosaurs">
<option value="brontosaurus">Brontosaurus</option>
<option value="pterodactyl">Pterodactyl</option>
<option value="trex">Tyrannosaurus Rex</option>
<option value="velociraptor">Velociraptor</option>
</optgroup>
<optgroup label="Ungulates">
<option value="camel">Camel</option>
<option value="giraffe">Giraffe</option>
<option value="hippo">Hippo</option>
<option value="horse">Horse</option>
<option value="zebra">Zebra</option>
</optgroup>
<optgroup label="Household Pets">
<option value="cat">Cat</option>
<option value="dog">Dog</option>
<option value="fish">Fish</option>
<option value="rabbit">Rabbit</option>
</optgroup>
</select>
</form>
Pruebas
Procedimiento
- Revisar el conjunto de opciones de una lista de selección para ver si hay grupos de opciones relacionadas.
- Si hay grupos de opciones relacionadas, deben estar agrupadas con
optgroup.
Resultados esperados
- La comprobación n.º 2 es verdadera.
Recursos
-
HTML: elemento
select. -
HTML: elemento
optgroup. -
HTML: elemento
option. - WebAIM - Creating Accessible Forms (creación de formularios accesibles).
Cómo lo comprobamos en ADDAW
En cada auditoría de ADDAW revisamos esta técnica página a página y le entregamos los errores con capturas y la forma de corregirlos.
Basado en la técnica H85 del W3C (WCAG 2.2). Explicación y ejemplos: ADDAW. Traducción no oficial del texto del W3C © W3C, licencia de documentos del W3C. ¿Ha visto un error? Escríbanos.