Skip to main content
Validación HTML

Usar el elemento “meta” para especificar el idioma predeterminado de todo el documento está obsoleto. Considera especificar el idioma en el elemento raíz en su lugar.

Acerca de este problema HTML

En las prácticas HTML más antiguas, los desarrolladores a veces usaban <meta http-equiv="Content-Language" content="en"> dentro del <head> para declarar el idioma principal del documento. El estándar HTML living ahora marca esto como obsoleto porque era una forma poco confiable e indirecta de comunicar información sobre el idioma. Intentaba reflejar una cabecera HTTP en lugar de ser una parte verdadera de la estructura del documento, y su comportamiento se implementaba de manera inconsistente entre navegadores.

El atributo lang en el elemento <html> es el enfoque moderno correcto. Asocia directamente el idioma con el árbol DOM del documento, lo que tiene varios beneficios importantes:

  • Accesibilidad: Los lectores de pantalla dependen del atributo lang para seleccionar las reglas de pronunciación correctas y el perfil de voz. Sin él, la tecnología de asistencia puede pronunciar mal el contenido o recurrir a un idioma predeterminado que no coincida con el texto.
  • Comportamiento del navegador: Los navegadores usan el atributo lang para tomar decisiones sobre la división de palabras, selección de fuentes, estilo de comillas, corrección ortográfica y otros tipos de renderizado sensibles al idioma.
  • Motores de búsqueda: Declarar el idioma ayuda a los motores de búsqueda a indexar y servir contenido a la audiencia apropiada.
  • Orientación CSS: El selector de pseudoclase :lang() funciona basado en el atributo lang, permitiendo estilos específicos para cada idioma.

El atributo lang también admite declaraciones de idioma granulares a nivel de elemento. Si tu página está principalmente en inglés pero contiene una cita en francés, puedes establecer lang="fr" en ese elemento específico — algo que el enfoque <meta> nunca podría hacer.

Ejemplos

Incorrecto: usando la etiqueta meta obsoleta

Esto activa la advertencia de validación de W3C porque <meta http-equiv="Content-Language"> está obsoleto para especificar el idioma del documento.

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Language" content="en">
    <title>My Page</title>
  </head>
  <body>
    <p>Hello, world!</p>
  </body>
</html>

Correcto: usando el atributo lang en <html>

Elimina la etiqueta <meta http-equiv="Content-Language"> y añade el atributo lang al elemento <html> en su lugar.

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>My Page</title>
  </head>
  <body>
    <p>Hello, world!</p>
  </body>
</html>

Correcto: contenido en varios idiomas

Usa el atributo lang en el elemento raíz para el idioma principal, luego sobreescríbelo en elementos específicos según sea necesario.

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Multilingual Page</title>
  </head>
  <body>
    <p>The French word for hello is <span lang="fr">bonjour</span>.</p>
    <blockquote lang="de">
      <p>Die Grenzen meiner Sprache bedeuten die Grenzen meiner Welt.</p>
    </blockquote>
  </body>
</html>

Códigos de idioma comunes

Usa una etiqueta de idioma BCP 47 válida como valor del atributo lang. Aquí tienes algunos códigos utilizados frecuentemente:

Código Idioma
en Inglés
fr Francés
de Alemán
es Español
pt-BR Portugués brasileño
zh-Hans Chino simplificado
ja Japonés

La solución es directa: elimina cualquier etiqueta <meta http-equiv="Content-Language"> de tu <head> y asegúrate de que tu elemento <html> incluya un atributo lang con el código de idioma apropiado. Este único cambio resuelve la advertencia de validación mientras mejora la accesibilidad, renderizado y cumplimiento de estándares de tu documento.

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.