Skip to main content
Validação HTML

Atributo “http-equiv” não permitido no elemento “meta” neste ponto.

Sobre este problema HTML

O atributo http-equiv num elemento <meta> simula um cabeçalho de resposta HTTP, permitindo-lhe definir metadados a nível do documento que, de outra forma, exigiriam configuração do servidor. Como estes metadados se aplicam a todo o documento e devem ser processados antes do conteúdo da página ser renderizado, a especificação HTML exige que os elementos <meta http-equiv> apareçam dentro do elemento <head>. Colocá-los no <body> é inválido e pode fazer com que os navegadores os ignorem completamente, levando a comportamentos inesperados como codificação de caracteres incorreta, políticas de segurança de conteúdo quebradas, ou diretivas de atualização em falta.

Este erro ocorre comumente quando:

  • Uma tag <meta http-equiv> é acidentalmente colocada dentro do <body>.
  • O conteúdo é copiado e colado de um documento para o corpo de outro, trazendo consigo as tags <meta>.
  • Um sistema de templates ou CMS injeta tags <meta> na localização errada.

Valores comuns de http-equiv

O atributo http-equiv suporta vários valores padrão:

  • content-type — Declara o tipo MIME do documento e a codificação de caracteres. Em HTML5, a forma abreviada <meta charset="UTF-8"> é preferida.
  • refresh — Instrui o navegador a recarregar a página ou redirecionar após um número especificado de segundos. Note que a atualização automática é desencorajada por razões de acessibilidade: pode desorientar utilizadores, mover o foco de volta ao topo da página, e perturbar tecnologias assistivas. Evite-a a menos que seja absolutamente necessária.
  • content-security-policy — Define uma Política de Segurança de Conteúdo para o documento, ajudando a prevenir ataques de cross-site scripting (XSS) e outras injeções de código.
  • default-style — Especifica a folha de estilo preferida de um conjunto de folhas de estilo alternativas.

Como corrigir

Encontre todos os elementos <meta http-equiv> no seu documento e certifique-se de que estão colocados dentro do elemento <head>, antes de qualquer conteúdo no <body>. Se a tag estiver duplicada ou for desnecessária, remova-a.

Exemplos

❌ Incorreto: http-equiv dentro do <body>

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>My Page</title>
  </head>
  <body>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <p>Hello, world!</p>
  </body>
</html>

A tag <meta http-equiv> está dentro do <body>, o que desencadeia o erro de validação.

✅ Correto: http-equiv dentro do <head>

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title>My Page</title>
  </head>
  <body>
    <p>Hello, world!</p>
  </body>
</html>

✅ Correto: usando a forma abreviada charset do HTML5

Em HTML5, você pode substituir <meta http-equiv="content-type" content="text/html; charset=UTF-8"> pelo atributo charset mais simples:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>My Page</title>
  </head>
  <body>
    <p>Hello, world!</p>
  </body>
</html>

✅ Correto: Content Security Policy no <head>

<head>
  <meta charset="UTF-8">
  <meta http-equiv="content-security-policy" content="default-src 'self'">
  <title>Secure Page</title>
</head>

O valor content-security-policy é particularmente sensível à colocação — os navegadores ignorá-lo-ão se aparecer fora do <head>, deixando a sua página sem as proteções de segurança pretendidas.

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.