Skip to main content
Validación HTML

Valor incorrecto (true|false) para el atributo “itemscope” en el elemento “html”.

Acerca de este problema HTML

El atributo itemscope es parte de la especificación HTML Microdata, usado para definir el alcance de datos estructurados en una página. Funciona junto con itemtype e itemprop para proporcionar metadatos legibles por máquina sobre tu contenido, que los motores de búsqueda y otras herramientas pueden usar para entender mejor tus páginas.

En HTML, los atributos booleanos siguen una regla específica: su mera presencia en un elemento representa un estado true, y su ausencia representa false. A diferencia de JavaScript u otros lenguajes de programación donde podrías escribir itemscope="true" o itemscope="false", los atributos booleanos de HTML no funcionan de esta manera. Las únicas formas válidas para un atributo booleano son:

  • Solo el nombre del atributo: itemscope
  • El atributo con un valor vacío: itemscope=""
  • El atributo con su propio nombre como valor: itemscope="itemscope"

Asignar cualquier otro valor — incluyendo "true" o "false" — es HTML inválido. Esto es especialmente confuso porque itemscope="false" no desactiva el atributo. Dado que el atributo sigue presente en el elemento, el navegador lo trata como activo. Esto puede llevar a que se generen datos estructurados incorrectos, lo que puede hacer que los motores de búsqueda interpreten mal tu contenido.

Este problema es importante por varias razones:

  • Cumplimiento de estándares: Los valores de atributo inválidos violan la especificación HTML, causando errores de validación W3C.
  • Precisión de datos estructurados: El marcado microdata incorrecto puede resultar en que los motores de búsqueda lean mal el contenido de tu página, potencialmente afectando los resultados de búsqueda enriquecidos.
  • Intención del desarrollador: Escribir itemscope="false" sugiere que quieres desactivar el atributo, pero en realidad hace lo contrario — el atributo permanece activo.

Para solucionarlo, simplemente usa el nombre del atributo sin valor cuando quieras habilitarlo, o elimínalo completamente cuando no lo necesites.

Ejemplos

Incorrecto: asignar "true" a itemscope

<html itemscope="true" itemtype="https://schema.org/WebPage">
<!-- ... -->

</html>

Incorrecto: asignar "false" a itemscope

Esto no desactiva itemscope — el atributo sigue presente, por lo que el navegador lo trata como activo.

<div itemscope="false" itemtype="https://schema.org/Product">
  <span itemprop="name">Widget</span>
</div>

Correcto: usar el atributo sin valor

<html itemscope itemtype="https://schema.org/WebPage">
<!-- ... -->

</html>

Correcto: usar un valor de cadena vacía

Esta es una forma igualmente válida de especificar un atributo booleano, aunque la forma sin valor es más común y legible.

<div itemscope="" itemtype="https://schema.org/Product">
  <span itemprop="name">Widget</span>
</div>

Correcto: eliminar el atributo completamente

Si no necesitas itemscope en el elemento, simplemente omítelo.

<html lang="en">
  <head>
    <title>My Page</title>
  </head>
  <body>
    <p>No microdata here.</p>
  </body>
</html>

Correcto: un ejemplo completo con microdata

<!DOCTYPE html>
<html lang="en" itemscope itemtype="https://schema.org/WebPage">
  <head>
    <title>My Product</title>
  </head>
  <body>
    <div itemscope itemtype="https://schema.org/Product">
      <h1 itemprop="name">Super Widget</h1>
      <p itemprop="description">The best widget money can buy.</p>
    </div>
  </body>
</html>

Esta misma regla se aplica a todos los atributos booleanos de HTML, como hidden, disabled, checked, required, readonly, autoplay y defer. Ninguno de ellos acepta "true" o "false" como valores — están presentes o ausentes.

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.