Acerca de este problema HTML
El atributo xmlns declara el namespace XML para el documento. Cuando está presente en el elemento <html>, la especificación HTML requiere que su valor sea exactamente http://www.w3.org/1999/xhtml — no se permiten variaciones. La URL http://www.w3.org/1999/html no es un namespace reconocido y será rechazada por el validador. Este error casi siempre proviene de un error tipográfico: la “x” antes de “html” fue omitida accidentalmente.
Por qué esto importa
Aunque la mayoría de navegadores seguirán renderizando la página en modo HTML independientemente de un valor xmlns malformado, un namespace incorrecto puede causar problemas reales en ciertos contextos:
-
Procesamiento XHTML: Si el documento se sirve con un tipo de contenido XML (por ejemplo,
application/xhtml+xml), un namespace inválido hará que los analizadores XML rechacen o malinterpreten el documento. - Cumplimiento de estándares: Los validadores y herramientas automatizadas marcan esto como un error, lo que puede afectar las auditorías de calidad, verificaciones de accesibilidad y pipelines CI/CD que exigen marcado válido.
- Herramientas e interoperabilidad: Las herramientas basadas en XML, sistemas de gestión de contenidos y transformaciones XSLT dependen de namespaces correctos para funcionar adecuadamente.
Cómo solucionarlo
Tienes dos opciones dependiendo del tipo de documento:
-
Si necesitas el atributo
xmlns(por ejemplo, para documentos XHTML o poliglota): Cambia el valor dehttp://www.w3.org/1999/htmlahttp://www.w3.org/1999/xhtml. -
Si estás escribiendo HTML5 estándar: Simplemente elimina el atributo
xmlns. Es opcional en HTML5 y no tiene efecto cuando está presente con el valor correcto — así que omitirlo es el enfoque más limpio.
Ejemplos
Incorrecto — namespace mal escrito
El valor no tiene la “x” antes de “html”:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/html" lang="en">
<head>
<title>My Page</title>
</head>
<body>
<p>Hello, world!</p>
</body>
</html>
Corregido — namespace XHTML correcto
Añade la “x” que falta para que el valor sea xhtml:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<title>My Page</title>
</head>
<body>
<p>Hello, world!</p>
</body>
</html>
Corregido — HTML5 estándar sin xmlns
Si no necesitas compatibilidad con XHTML, elimina el atributo por completo:
<!DOCTYPE html>
<html lang="en">
<head>
<title>My Page</title>
</head>
<body>
<p>Hello, world!</p>
</body>
</html>
Para la mayoría de sitios web modernos servidos como text/html, la tercera opción — omitir xmlns completamente — es el enfoque más simple y recomendado. Solo inclúyelo si tu documento también debe ser XHTML válido o será procesado por herramientas XML, y siempre asegúrate de que el valor sea exactamente http://www.w3.org/1999/xhtml.
Encuentra problemas como este automáticamente
Rocket Validator escanea miles de páginas en segundos, detectando problemas de HTML en todo tu sitio web.