Je sais que cela remonte à un certain temps, mais j'ai un petit plus à ajouter :
Cela n'est pas possible dans HTML5 ou dans toute autre spécification précédente, et n'est pas encore proposé dans HTML5.1. J'ai fait une demande auprès du public-html-comments
liste de diffusion, mais nous verrons si quelque chose en ressort.
Néanmoins, bien que cela ne soit pas possible en utilisant <select>
Pourtant, vous pouvez obtenir un effet similaire avec le HTML suivant, plus quelques CSS pour la beauté :
<ul>
<li>
<input type="radio" name="location" value="0" id="loc_0" />
<label for="loc_0">United States</label>
<ul>
<li>
Northeast
<ul>
<li>
<input type="radio" name="location" value="1" id="loc_1" />
<label for="loc_1">New Hampshire</label>
</li>
<li>
<input type="radio" name="location" value="2" id="loc_2" />
<label for="loc_2">Vermont</label>
</li>
<li>
<input type="radio" name="location" value="3" id="loc_3" />
<label for="loc_3">Maine</label>
</li>
</ul>
</li>
<li>
Southeast
<ul>
<li>
<input type="radio" name="location" value="4" id="loc_4" />
<label for="loc_4">Georgia</label>
</li>
<li>
<input type="radio" name="location" value="5" id="loc_5" />
<label for="loc_5">Alabama</label>
</li>
</ul>
</li>
</ul>
</li>
<li>
<input type="radio" name="location" value="6" id="loc_6" />
<label for="loc_6">Canada</label>
<ul>
<li>
<input type="radio" name="location" value="7" id="loc_7" />
<label for="loc_7">Ontario</label>
</li>
<li>
<input type="radio" name="location" value="8" id="loc_8" />
<label for="loc_8">Quebec</label>
</li>
<li>
<input type="radio" name="location" value="9" id="loc_9" />
<label for="loc_9">Manitoba</label>
</li>
</ul>
</li>
</ul>
Comme avantage supplémentaire, cela signifie également que vous pouvez permettre la sélection de la <optgroups>
eux-mêmes. Cela peut s'avérer utile si vous avez, par exemple, des catégories imbriquées où les catégories sont très détaillées et que vous souhaitez permettre aux utilisateurs de sélectionner un niveau supérieur dans la hiérarchie.
Tout cela fonctionnera sans JavaScript, mais vous pourriez souhaiter en ajouter pour masquer les boutons radio et modifier la couleur de fond de l'élément sélectionné, par exemple.
Gardez à l'esprit que cette solution est loin d'être parfaite, mais si vous avez absolument besoin d'une sélection imbriquée avec une compatibilité raisonnable avec les navigateurs, c'est probablement ce que vous obtiendrez de mieux.
0 votes
Ajout de cette question en tant que proposition au HTMLWG : github.com/whatwg/html/issues/5789