Para agrupar campos relacionados dentro de un formulario HTML, mejorando tanto la organización visual como la accesibilidad, debes usar las etiquetas <fieldset> y <legend>.
¿Por qué agrupar campos?
<legend> antes de leer las opciones individuales.Aquí tienes un ejemplo práctico:
<form action="/procesar" method="post">
<fieldset>
<legend>Datos personales</legend>
<div>
<label for="nombre">Nombre:</label>
<input type="text" id="nombre" name="nombre_usuario">
</div>
<div>
<label for="email">Correo electrónico:</label>
<input type="email" id="email" name="email_usuario">
</div>
</fieldset>
<fieldset>
<legend>Preferencias de notificación</legend>
<div>
<input type="radio" id="notif_email" name="notificacion" value="email" checked>
<label for="notif_email">Recibir por correo electrónico</label>
</div>
<div>
<input type="radio" id="notif_sms" name="notificacion" value="sms">
<label for="notif_sms">Recibir por SMS</label>
</div>
<div>
<input type="radio" id="notif_no" name="notificacion" value="ninguna">
<label for="notif_no">No recibir notificaciones</label>
</div>
</fieldset>
<button type="submit">Enviar</button>
</form>
Lenguaje del código: PHP (php)En este ejemplo, los «datos personales» y las «preferencias de notificación» están claramente separados en sus respectivos <fieldset>, cada uno con una <legend> descriptiva. Por defecto, los navegadores suelen dibujar un borde alrededor del <fieldset>, pero puedes modificarlo con CSS si lo deseas.