Acerca de este problema HTML
En especificaciones HTML anteriores (HTML 4.01), el atributo scheme se usaba para proporcionar contexto adicional para interpretar el valor content de un elemento <meta>. Les decía a los navegadores o procesadores de metadatos qué esquema de codificación, formato o vocabulario se aplicaba a los metadatos. Por ejemplo, podías especificar que una fecha siguiera el formato W3CDTF o que una clasificación de tema usara una taxonomía particular.
HTML5 eliminó el atributo scheme porque era raramente usado por los navegadores y su propósito se cumplía mejor haciendo que el esquema fuera parte del valor de los metadatos en sí. El estándar HTML living de WHATWG no reconoce scheme como un atributo válido en <meta>, por lo que incluirlo producirá un error de validación. Mantener atributos obsoletos en tu markup puede causar confusión para los desarrolladores que mantienen el código y señala prácticas desactualizadas que pueden acompañar otros problemas de compatibilidad.
Este problema aparece más comúnmente en documentos que usan metadatos de Dublin Core Metadata Initiative (DCMI), que históricamente dependían de scheme para indicar el formato de codificación para fechas, identificadores y clasificaciones de temas.
Cómo solucionarlo
Hay varios enfoques dependiendo de tu caso de uso:
-
Simplemente eliminar el atributo
schemesi el formato ya está claro por el contexto (ej., las fechas ISO 8601 se entienden universalmente). -
Incorporar el esquema en el atributo
nameusando un nombre de propiedad más específico que implique el esquema. -
Incluir la declaración del esquema en el valor
contentpara que la información del formato se preserve dentro del valor mismo.
Para metadatos de Dublin Core específicamente, el enfoque moderno recomendado es usar el namespace DCTERMS con RDFa o simplemente eliminar el atributo scheme, ya que la mayoría de formatos de fecha como YYYY-MM-DD son inequívocos.
Ejemplos
Obsoleto: usando el atributo scheme
Esto provoca el error de validación porque scheme no es un atributo válido en HTML5:
<meta name="DC.Date.Created" scheme="W3CDTF" content="2009-11-30">
Otro ejemplo común con clasificación de temas:
<meta name="DC.Subject" scheme="LCSH" content="Web development">
Solucionado: eliminando el atributo scheme
Si el formato del valor es evidente por sí mismo (como con fechas ISO 8601), simplemente elimina scheme:
<meta name="DC.Date.Created" content="2009-11-30">
Solucionado: incorporando el esquema en el valor
Cuando la información del esquema es importante para que los procesadores entiendan el valor, incrústala en el atributo content:
<meta name="DC.Subject" content="LCSH: Web development">
Solucionado: usando un nombre de propiedad más específico
Puedes hacer que el esquema sea implícito usando un valor name más descriptivo:
<meta name="DCTERMS.created" content="2009-11-30">
Solucionado: usando RDFa para metadatos más ricos
Para documentos que requieren metadatos precisos y legibles por máquina con esquemas explícitos, considera usar atributos RDFa en lugar del obsoleto scheme:
<meta property="dcterms:created" content="2009-11-30">
Este enfoque es compatible con HTML5 y proporciona la misma riqueza semántica que el atributo scheme estaba diseñado originalmente para ofrecer.
Encuentra problemas como este automáticamente
Rocket Validator escanea miles de páginas en segundos, detectando problemas de HTML en todo tu sitio web.