Skip to main content
Validação HTML

Texto não permitido no elemento “iframe” neste contexto.

Sobre este problema HTML

O elemento <iframe> foi concebido para incorporar outro contexto de navegação (essencialmente um documento aninhado) dentro da página atual. De acordo com a especificação HTML, o modelo de conteúdo do <iframe> é nada — não deve conter quaisquer nós de texto ou elementos filhos. Qualquer texto colocado diretamente dentro das tags <iframe> é HTML inválido.

Historicamente, algumas versões mais antigas do HTML permitiam texto de fallback dentro do <iframe> para navegadores que não suportavam iframes. Este já não é o caso no HTML moderno. Todos os navegadores atuais suportam <iframe>, pelo que não há necessidade de conteúdo de fallback. O validador W3C sinaliza isto como um erro porque texto ou elementos entre as tags <iframe> violam a especificação HTML atual.

Existem duas formas válidas de especificar o conteúdo que um iframe deve exibir:

  • Atributo src — Forneça um URL que aponta para o documento que pretende incorporar.
  • Atributo srcdoc — Forneça conteúdo HTML inline diretamente como o valor do atributo. O HTML é escrito como uma string com o escape de caracteres apropriado (por exemplo, &lt; para < e &quot; para " se usar atributos com aspas duplas).

Se estava a usar texto dentro do <iframe> como uma descrição ou fallback, considere usar o atributo title em vez disso para fornecer uma etiqueta acessível para o conteúdo incorporado.

Exemplos

❌ Inválido: texto dentro do elemento <iframe>

<iframe>Some content here</iframe>
<iframe><p>This is my embedded content.</p></iframe>

Ambos irão despoletar o erro “Texto não permitido no elemento iframe neste contexto”.

✅ Válido: usar o atributo src

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

Isto carrega o documento no URL especificado dentro do iframe.

✅ Válido: usar o atributo srcdoc

<iframe srcdoc="&lt;p&gt;This is my embedded content.&lt;/p&gt;" title="Inline content"></iframe>

Isto renderiza o HTML inline fornecido no atributo srcdoc. Note que os caracteres especiais HTML devem ter escape quando o valor do atributo está encerrado em aspas duplas.

✅ Válido: estilo auto-fechado (elemento vazio)

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

O elemento <iframe> requer uma tag de fecho, mas nada deve aparecer entre as tags de abertura e fecho. Manter o elemento vazio é a abordagem correta.

✅ Válido: adicionar uma etiqueta acessível com title

Se a sua intenção original era descrever o conteúdo do iframe para utilizadores ou tecnologias assistivas, use o atributo title:

<iframe src="/embedded-report.html" title="Monthly sales report"></iframe>

O atributo title fornece uma etiqueta que os leitores de ecrã podem anunciar, melhorando a acessibilidade do conteúdo incorporado.

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.