Skip to main content
Validación HTML

El atributo “name” en el elemento “option” está obsoleto. Usa el atributo “id” en su lugar.

Acerca de este problema HTML

El atributo name se usaba históricamente en elementos <option> en especificaciones HTML más antiguas, pero está obsoleto desde HTML5. El WHATWG HTML Living Standard no lista name como un atributo válido para <option>. Los atributos válidos para <option> son disabled, label, selected y value, además de los atributos globales (como id, class, style, etc.).

Es importante entender que el atributo name en <option> nunca sirvió el mismo propósito que name en <input> o <select>. Para el envío de formularios, el navegador envía el name del elemento padre <select> emparejado con el value del <option> seleccionado. Poner name en elementos <option> individuales no tiene efecto en los datos del formulario y puede confundir a los desarrolladores haciéndoles pensar que influye en el comportamiento del formulario.

Eliminar el atributo obsoleto name asegura que tu HTML cumpla con los estándares, evita confusiones para los desarrolladores que mantienen el código y previene posibles problemas con el comportamiento futuro de los navegadores. Si necesitas referenciar un <option> específico en JavaScript o CSS, usa el atributo global id en su lugar.

Ejemplos

Incorrecto: usando el atributo obsoleto name

<select id="pet-select" name="pet">
  <option value="">--Please choose an option--</option>
  <option name="dog-option" value="dog">Dog</option>
  <option name="cat-option" value="cat">Cat</option>
  <option name="hamster-option" value="hamster">Hamster</option>
</select>

Esto activa el error de validación porque name no es un atributo válido en <option>.

Correcto: usando id en lugar de name

Si necesitas identificar de forma única cada opción (por ejemplo, para dirigirte a ellas con JavaScript o CSS), usa el atributo id:

<select id="pet-select" name="pet">
  <option value="">--Please choose an option--</option>
  <option id="dog-option" value="dog">Dog</option>
  <option id="cat-option" value="cat">Cat</option>
  <option id="hamster-option" value="hamster">Hamster</option>
</select>

Correcto: simplemente eliminando name si no se necesita ninguna referencia

En la mayoría de los casos, no necesitas identificar opciones individuales en absoluto. El atributo value es suficiente para el envío del formulario, y puedes eliminar name completamente:

<select id="pet-select" name="pet">
  <option value="">--Please choose an option--</option>
  <option value="dog">Dog</option>
  <option value="cat">Cat</option>
  <option value="hamster">Hamster</option>
</select>

Ten en cuenta que el atributo name en el propio elemento <select> es perfectamente válido y necesario — define la clave usada cuando se envían los datos del formulario. La advertencia de atributo obsoleto se aplica solo a name en elementos <option>.

Encuentra problemas como este automáticamente

Rocket Validator escanea miles de páginas en segundos, detectando problemas de HTML en todo tu sitio web.

Ayúdanos a mejorar nuestras guías

¿Te ha sido útil esta guía?

¿Listo para validar tus sitios?
Inicia tu prueba gratuita hoy.