Skip to main content
Validação HTML

Valor inválido “%” para o atributo “width” ou “height” no elemento “object”: Era esperado um dígito mas foi encontrado “%” em vez disso.

Sobre este problema HTML

De acordo com o HTML Living Standard, os atributos width e height no elemento <object> aceitam apenas números inteiros não negativos válidos — números simples que representam pixels, como 600 ou 400. O validador espera que cada caractere no valor seja um dígito (0–9). Quando encontra um sinal %, reporta “Era esperado um dígito mas foi encontrado ‘%’ em vez disso.”

Isto é diferente de alguns comportamentos do HTML 4 legado onde certos elementos aceitavam valores percentuais em atributos de dimensão. No HTML moderno, os atributos de dimensão do elemento <object> são estritamente apenas em pixels. A mesma restrição aplica-se a elementos como <img>, <video> e <canvas>.

Porque é que isto importa

  • Conformidade com os padrões: Os navegadores ainda podem renderizar valores percentuais nestes atributos, mas o comportamento não é definido pela especificação e não pode ser considerado fiável entre navegadores ou versões futuras.
  • Renderização previsível: Valores em pixels nos atributos dão ao navegador um tamanho intrínseco concreto para o objeto, o que ajuda com cálculos de layout e previne o refluxo do conteúdo enquanto a página carrega.
  • Acessibilidade e ferramentas: Tecnologias assistivas e outras ferramentas que fazem parse do HTML dependem de valores de atributo bem formados. Valores inválidos podem causar comportamentos inesperados.

Como corrigir

Você tem duas opções:

  1. Use valores em pixels nos atributos se souber as dimensões exactas que precisa.
  2. Use CSS se precisar de dimensionamento baseado em percentagem ou responsivo. Remova os atributos width e height (ou defina-os para valores de fallback em pixels) e aplique propriedades CSS width e height em vez disso.

Quando usar CSS para altura de 100%, lembre-se de que alturas percentuais requerem que os elementos pai também tenham uma altura definida. Isto tipicamente significa definir height: 100% em html e body também.

Exemplos

❌ Inválido: valores percentuais em atributos

<object data="example.pdf" type="application/pdf" width="100%" height="100%"></object>

O validador sinaliza tanto width="100%" como height="100%" porque % não é um dígito.

✅ Corrigido: valores em pixels nos atributos

<object data="example.pdf" type="application/pdf" width="600" height="400"></object>

Valores inteiros simples são válidos e dão ao objeto um tamanho fixo em pixels.

✅ Corrigido: dimensionamento percentual com CSS

<object
  data="example.pdf"
  type="application/pdf"
  style="width: 100%; height: 500px;">
</object>

Usar CSS inline permite misturar unidades livremente, incluindo percentagens, vh, em e mais.

✅ Corrigido: objeto de página completa com CSS

Quando precisar que o <object> preencha toda a viewport, use uma folha de estilos para definir alturas nos elementos ancestrais:

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Full-Page Object Example</title>
  <style>
    html, body {
      height: 100%;
      margin: 0;
    }
    object {
      display: block;
      width: 100%;
      height: 100%;
    }
  </style>
</head>
<body>
  <object data="example.pdf" type="application/pdf"></object>
</body>
</html>

Esta abordagem é totalmente válida, responsiva e dá-lhe muito mais controlo sobre o dimensionamento do que apenas os atributos HTML.

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.