Skip to main content
Validación HTML

Valor incorrecto “virtual” para el atributo “wrap” en el elemento “textarea”.

Acerca de este problema HTML

El atributo wrap en un <textarea> controla cómo se envuelve el texto cuando se envía el formulario. El valor "virtual" fue usado por algunos navegadores más antiguos (especialmente las primeras versiones de Netscape e Internet Explorer) como una alternativa propietaria a lo que el Estándar HTML ahora llama "soft". Como "virtual" nunca fue parte de ninguna especificación HTML formal, el validador W3C lo rechaza correctamente como un valor inválido.

El Estándar HTML define solo dos valores válidos para wrap:

  • soft (por defecto): El texto se envuelve visualmente en el navegador para propósitos de visualización, pero no se insertan caracteres de salto de línea reales en los datos del formulario enviado. El servidor recibe el texto como líneas continuas.
  • hard: El navegador inserta caracteres de retorno de carro + salto de línea (CRLF) en los puntos de envolvimiento visual cuando se envía el formulario, por lo que el servidor recibe el texto con saltos de línea duros. Al usar wrap="hard", debes especificar también el atributo cols para que el navegador sepa dónde están los puntos de envolvimiento.

Como "virtual" era funcionalmente idéntico a "soft", reemplazarlo es sencillo. Si omites el atributo wrap por completo, el navegador usa por defecto el envolvimiento suave, lo que te da el mismo comportamiento.

Por qué esto importa

Usar valores de atributo no estándar puede llevar a comportamientos impredecibles entre navegadores. Aunque la mayoría de los navegadores modernos probablemente recurrirán al envolvimiento suave cuando encuentren un valor wrap no reconocido, esto no está garantizado por ninguna especificación. Adherirse a valores válidos asegura un comportamiento consistente entre navegadores y mantiene tu marcado conforme a los estándares.

Cómo solucionarlo

  1. Reemplaza wrap="virtual" con wrap="soft" para obtener un equivalente explícito.
  2. Elimina el atributo wrap completamente si quieres el comportamiento por defecto de envolvimiento suave.
  3. Usa wrap="hard" con un atributo cols si realmente necesitas que se inserten saltos de línea duros en el envío.

Ejemplos

❌ Inválido: usar el valor no estándar "virtual"

<form>
  <label for="msg">Mensaje</label>
  <textarea id="msg" name="msg" wrap="virtual"></textarea>
</form>

Esto produce el error: Valor incorrecto “virtual” para el atributo “wrap” en el elemento “textarea”.

✅ Solucionado: usar wrap="soft" (equivalente a "virtual")

<form>
  <label for="msg">Mensaje</label>
  <textarea id="msg" name="msg" wrap="soft"></textarea>
</form>

✅ Solucionado: omitir wrap completamente (por defecto es "soft")

<form>
  <label for="msg">Mensaje</label>
  <textarea id="msg" name="msg"></textarea>
</form>

Como "soft" es el valor por defecto, eliminar el atributo produce un comportamiento idéntico y un marcado más limpio.

✅ Solucionado: usar wrap="hard" con cols

Si necesitas que el texto enviado incluya saltos de línea en los puntos de envolvimiento, usa wrap="hard" y especifica cols:

<form>
  <label for="msg">Mensaje</label>
  <textarea id="msg" name="msg" wrap="hard" cols="60" rows="6"></textarea>
</form>

Ten en cuenta que cols es requerido al usar wrap="hard". Omitirlo producirá un error de validación separado.

Otros valores heredados a tener en cuenta

El valor "virtual" no es el único valor wrap no estándar de los primeros días de la web. También puedes encontrar wrap="physical" (el equivalente heredado de "hard") o wrap="off" (que deshabilitaba el envolvimiento). Ninguno es válido en HTML moderno. Reemplaza "physical" con "hard" (y añade cols), y reemplaza "off" eliminando el atributo y usando CSS (white-space: nowrap; o overflow-wrap: normal;) para controlar el envolvimiento visual si es necesario.

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.