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:
-
Remova a unidade do atributo HTML. Altere
height="650px"paraheight="650". Esta é a correção mais simples e mantém o seu dimensionamento na marcação. -
Mova o dimensionamento para CSS. Remova o atributo
heightinteiramente e use uma folha de estilo ou atributostyleinline em vez disso. Esta abordagem é mais flexível porque CSS suporta unidades como%,em,vhe 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.