Skip to main content
Validação HTML

Tag de abertura “br” encontrada em “table”.

Sobre este problema HTML

O elemento <table> em HTML tem um modelo de conteúdo rígido. Diretamente dentro de <table>, apenas elementos específicos são permitidos: <caption>, <colgroup>, <thead>, <tbody>, <tfoot>, <tr>, e elementos que suportam <script>. Da mesma forma, elementos <tr> podem apenas conter elementos <td> e <th>. Uma tag <br> colocada entre linhas de tabela, ou diretamente dentro de um <tbody> ou <tr> mas fora de uma célula, viola este modelo de conteúdo.

Este erro normalmente acontece quando os programadores tentam adicionar espaçamento vertical entre linhas de tabela usando tags <br>. Os browsers lidam com esta marcação inválida de forma inconsistente — alguns vão empurrar o <br> completamente para fora da tabela, enquanto outros podem ignorá-lo silenciosamente. Isto leva a comportamento de layout imprevisível entre browsers e pode confundir tecnologias assistivas que dependem da estrutura adequada da tabela para transmitir relações de dados aos utilizadores.

O elemento <br> é apenas válido dentro de contextos de conteúdo fraseológico, tal como dentro de um <td>, <th>, <p>, <span>, ou elementos similares. Se precisar de adicionar espaçamento entre linhas, use CSS (margin, padding, ou border-spacing) em vez de inserir tags <br> na estrutura da tabela.

Como corrigir

  1. Remova o <br> se foi adicionado acidentalmente ou como uma tentativa de formatação entre linhas.
  2. Mova o <br> para dentro de um <td> ou <th> se pretendia criar uma quebra de linha dentro do conteúdo de uma célula.
  3. Use CSS para espaçamento se precisar de separação visual entre linhas. Aplique padding às células ou use a propriedade border-spacing na tabela.

Exemplos

❌ Inválido: <br> entre linhas de tabela

<table>
  <tr>
    <th>Item</th>
    <th>Description</th>
  </tr>
  <br>
  <tr>
    <td>Book</td>
    <td>A guide to HTML</td>
  </tr>
</table>

❌ Inválido: <br> diretamente dentro de um <tr>

<table>
  <tr>
    <br>
    <td>Book</td>
    <td>A guide to HTML</td>
  </tr>
</table>

✅ Corrigido: <br> removido, CSS usado para espaçamento

<table style="border-spacing: 0 1em;">
  <tr>
    <th>Item</th>
    <th>Description</th>
  </tr>
  <tr>
    <td>Book</td>
    <td>A guide to HTML</td>
  </tr>
</table>

✅ Válido: <br> usado dentro de uma célula de tabela

Um elemento <br> é perfeitamente válido dentro de um <td> ou <th>, onde funciona como uma quebra de linha dentro do conteúdo da célula.

<table>
  <tr>
    <th>Item</th>
    <th>Description</th>
  </tr>
  <tr>
    <td>Book</td>
    <td>
      Title: HTML &amp; CSS<br>
      Author: Jon Duckett
    </td>
  </tr>
</table>

✅ Corrigido: usando padding para espaçamento de linhas

Se o seu objetivo é criar separação visual entre linhas, padding CSS nas células é a abordagem mais limpa:

<style>
  .spaced-table td,
  .spaced-table th {
    padding: 1em 0.5em;
  }
</style>

<table class="spaced-table">
  <tr>
    <th>Item</th>
    <th>Description</th>
  </tr>
  <tr>
    <td>Book</td>
    <td>A guide to HTML</td>
  </tr>
</table>

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.