Skip to main content
Validação HTML

Valor inválido “X” para o atributo “height” no elemento “embed”: esperado um dígito mas encontrado “p” em vez disso.

Sobre este problema HTML

A especificação HTML define os atributos height e width no elemento <embed> como números inteiros não negativos válidos. Isso significa que o valor deve consistir apenas em dígitos — por exemplo, 650 — sem unidades, espaços em branco ou outros caracteres anexados. Quando você escreve height="650px", o validador encontra a letra “p” onde espera outro dígito ou o final do valor, e gera este erro.

Este é um erro comum porque CSS requer unidades (por exemplo, 650px), e é fácil assumir que os atributos HTML funcionam da mesma forma. Eles não funcionam. Em HTML, o atributo height implicitamente significa pixels CSS, então escrever 650 já significa “650 pixels”. Adicionar px não é apenas redundante — torna o valor inválido.

Embora a maioria dos browsers seja tolerante e analise 650px corretamente removendo a unidade, confiar neste comportamento é problemático. Viola a especificação HTML, causa erros de validação que podem mascarar outros problemas reais na sua marcação, e não há garantia de que todos os browsers ou manipuladores de conteúdo incorporado sejam igualmente tolerantes. A conformidade com os padrões garante uma renderização consistente em diferentes browsers e tecnologias assistivas.

Como corrigir

Você tem duas abordagens:

  1. Remova a unidade do atributo HTML. Altere height="650px" para height="650". Esta é a correção mais simples e mantém o seu dimensionamento na marcação.

  2. Mova o dimensionamento para CSS. Remova o atributo height inteiramente e use uma folha de estilo ou atributo style inline em vez disso. Esta abordagem é mais flexível porque CSS suporta unidades como %, em, vh e mais.

A mesma regra aplica-se ao atributo width em <embed>, bem como height e width em elementos como <img>, <video>, <iframe> e <canvas> — todos eles esperam números inteiros simples em HTML.

Exemplos

❌ Inválido: unidade incluída no atributo HTML

O sufixo px causa o erro do validador porque o valor do atributo deve conter apenas dígitos.

<embed src="file.pdf" type="application/pdf" width="800" height="650px">

Outras variações inválidas incluem:

<embed src="file.pdf" type="application/pdf" height="100%">
<embed src="file.pdf" type="application/pdf" height="40em">
<embed src="file.pdf" type="application/pdf" height="50vh">

✅ Corrigido: número inteiro simples sem unidade

Remova a unidade para que o valor seja um número inteiro não negativo válido.

<embed src="file.pdf" type="application/pdf" width="800" height="650">

✅ Corrigido: dimensionamento movido para CSS

Se você precisar de unidades diferentes de pixels, ou preferir manter a apresentação nas suas folhas de estilo, use CSS em vez do atributo HTML.

<embed class="pdf-viewer" src="file.pdf" type="application/pdf">
.pdf-viewer {
  width: 800px;
  height: 650px;
}

✅ Corrigido: estilo inline como alternativa

Você também pode usar o atributo style diretamente se uma folha de estilo separada não for prática.

<embed src="file.pdf" type="application/pdf" style="width: 800px; height: 80vh;">

Isto é especialmente útil quando você precisa de dimensionamento relativo ao viewport ou baseado em percentagem que os atributos HTML não conseguem expressar.

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.