Skip to main content
Validação HTML

Valor inválido “true” para o atributo “allowfullscreen” no elemento “iframe”.

Sobre este problema HTML

Em HTML, os atributos booleanos como allowfullscreen, disabled, readonly e hidden funcionam de forma diferente do que muitos programadores esperam. A sua mera presença num elemento significa “true”, e a sua ausência significa “false”. Os únicos valores válidos para um atributo booleano são a string vazia ("") ou o próprio nome do atributo (por exemplo, allowfullscreen="allowfullscreen"). Definir um atributo booleano como "true" não é HTML válido de acordo com o padrão HTML living da WHATWG, mesmo que os browsers tipicamente ainda o interpretem como ativado.

Isto é importante por várias razões. Primeiro, viola a especificação HTML e produzirá um erro de validação do W3C. Segundo, pode criar confusão para outros programadores que podem assumir que definir o atributo como "false" o desativaria — mas não é assim que os atributos booleanos funcionam. Definir allowfullscreen="false" ainda ativaria o ecrã completo porque o atributo está presente. Manter a sua marcação válida e semanticamente correta evita estes mal-entendidos e garante compatibilidade futura com browsers e ferramentas.

Vale também a pena notar que allowfullscreen é agora considerado um atributo legado. A abordagem moderna é usar o atributo allow com o token de permissão "fullscreen", que faz parte do mecanismo mais amplo de Permissions Policy. O atributo allow dá-lhe controlo granular sobre múltiplas funcionalidades num único atributo.

Exemplos

Incorreto: atributo booleano definido como “true”

Isto desencadeia o erro de validação porque "true" não é um valor válido para um atributo booleano.

<iframe src="https://example.com" allowfullscreen="true"></iframe>

Correto: atributo booleano sem valor

Simplesmente inclua o nome do atributo sem qualquer atribuição de valor.

<iframe src="https://example.com" allowfullscreen></iframe>

Também correto: atributo booleano com uma string vazia

A string vazia é um valor válido para qualquer atributo booleano.

<iframe src="https://example.com" allowfullscreen=""></iframe>

Também correto: atributo booleano definido com o seu próprio nome

Segundo a especificação, um atributo booleano pode ser definido com uma correspondência insensível a maiúsculas/minúsculas do seu próprio nome.

<iframe src="https://example.com" allowfullscreen="allowfullscreen"></iframe>

Recomendado: usando o atributo moderno allow

O atributo allow é a abordagem preferida daqui para a frente. Substitui allowfullscreen e também pode controlar outras permissões como câmara, microfone e mais.

<iframe src="https://example.com" allow="fullscreen"></iframe>

Pode combinar múltiplas permissões num único atributo allow:

<iframe src="https://example.com" allow="fullscreen; camera; microphone"></iframe>

Erro comum: tentar desativar com “false”

Esteja ciente de que o seguinte não desativa o ecrã completo — o atributo ainda está presente, portanto o ecrã completo ainda é permitido. Isto também produziria um erro de validação.

<!-- Isto NÃO desativa o ecrã completo — e é HTML inválido -->

<iframe src="https://example.com" allowfullscreen="false"></iframe>

Para desativar o ecrã completo, simplesmente omita o atributo por completo:

<iframe src="https://example.com"></iframe>

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.