Skip to main content
Validação HTML

O atributo “itemprop” foi especificado, mas o elemento não é uma propriedade de nenhum item.

Sobre este problema HTML

Microdata é uma especificação HTML que lhe permite incorporar dados legíveis por máquina no seu conteúdo usando três atributos principais: itemscope, itemtype, e itemprop. O atributo itemscope cria um novo item (um grupo de pares nome-valor), itemtype especifica que tipo de coisa o item é (usando um URL de vocabulário como Schema.org), e itemprop define propriedades individuais dentro desse item. Estes atributos funcionam em conjunto — itemprop só faz sentido no contexto de um itemscope.

Quando o validador encontra um atributo itemprop num elemento que não é descendente de qualquer elemento com itemscope, não tem forma de associar essa propriedade com um item. A propriedade fica essencialmente órfã. Isto é um problema por várias razões:

  • Motores de busca não conseguem usar os dados. Consumidores de dados estruturados como Google, Bing, e outros crawlers dependem da hierarquia itemscope/itemprop para compreender o seu conteúdo. Um itemprop órfão é ignorado ou mal interpretado.
  • Conformidade com padrões. O padrão HTML living standard do WHATWG requer que um elemento com itemprop deve ser uma propriedade de um item — significando que deve ter um ancestral com itemscope, ou ser explicitamente referenciado através do atributo itemref num elemento itemscope.
  • Problemas de manutenção. Atributos itemprop órfãos sugerem que a marcação circundante foi refatorizada e a estrutura microdata foi acidentalmente quebrada.

As causas mais comuns deste erro são:

  1. itemscope em falta — Você adicionou atributos itemprop mas esqueceu-se de definir o item contentor com itemscope.
  2. Elementos movidos — Um elemento com itemprop foi movido para fora do seu contentor itemscope original durante uma refatorização.
  3. Erros de copiar-colar — Você copiou um excerto que incluía itemprop mas não o itemscope pai.

Para corrigir o problema, envolva os elementos itemprop dentro de um contentor itemscope, use itemref para associar propriedades distantes com um item, ou remova o atributo itemprop se dados estruturados não forem pretendidos.

Exemplos

Incorreto: itemprop sem itemscope

Isto desencadeia o erro de validação porque não há ancestral itemscope:

<div>
  <p>O meu nome é <span itemprop="name">Liza</span>.</p>
</div>

Correto: itemprop dentro de um contentor itemscope

Adicionar itemscope (e opcionalmente itemtype) a um elemento ancestral corrige o problema:

<div itemscope itemtype="https://schema.org/Person">
  <p>O meu nome é <span itemprop="name">Liza</span>.</p>
</div>

Correto: itens aninhados com o seu próprio scope

Quando um item contém um sub-item, o item aninhado precisa do seu próprio itemscope:

<div itemscope itemtype="https://schema.org/Person">
  <p itemprop="name">Liza</p>
  <div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
    <span itemprop="addressLocality">Portland</span>,
    <span itemprop="addressRegion">OR</span>
  </div>
</div>

Correto: usar itemref para propriedades fora do scope

Se não consegue reestruturar o seu HTML para aninhar itemprop dentro de itemscope, use itemref para referenciar elementos pelos seus id:

<div itemscope itemtype="https://schema.org/Person" itemref="user-name"></div>

<p id="user-name">
  O meu nome é <span itemprop="name">Liza</span>.
</p>

Neste caso, o elemento itemprop="name" não é descendente do elemento itemscope, mas o atributo itemref="user-name" puxa explicitamente a árvore do elemento referenciado para o item, tornando-o válido.

Incorreto: scope quebrado após refatorização

Um cenário comum do mundo real onde o erro aparece após reestruturação:

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

<!-- Isto foi movido para fora da div acima -->

<span itemprop="price">9.99</span>

Corrija isto movendo o elemento de volta para dentro do contentor itemscope, usando itemref, ou removendo o itemprop órfão.

Encontre problemas como este automaticamente

O Rocket Validator analisa milhares de páginas em segundos, detetando problemas HTML em todo o seu site.

Ajude-nos a melhorar os nossos guias

Este guia foi útil?

Pronto para validar os seus sites?
Comece o seu teste gratuito hoje.