Skip to main content
Validação HTML

O atributo “language” no elemento “script” está obsoleto. Pode omiti-lo com segurança.

Sobre este problema HTML

O atributo language era usado no HTML inicial para especificar a linguagem de script de um bloco <script>, normalmente definido para valores como "JavaScript" ou "VBScript". Foi deprecado no HTML 4.01 (em favor do atributo type) e está agora completamente obsoleto no HTML Living Standard. Embora os navegadores ainda o reconheçam para compatibilidade retroativa, não serve qualquer propósito funcional e gera um aviso de validação.

O elemento <script> aceita vários atributos padrão, mas os dois mais comuns são type e src. O atributo type especifica o tipo MIME ou tipo de módulo do script (por exemplo, "module" ou "application/json"), e src aponta para um ficheiro de script externo. Ao escrever JavaScript padrão, pode omitir type inteiramente porque "text/javascript" é a predefinição. O atributo language, no entanto, deve sempre ser removido — não é um substituto válido para type e não tem qualquer efeito nos navegadores modernos.

Por que isto importa

  • Conformidade com padrões: Usar atributos obsoletos significa que o seu HTML não está em conformidade com a especificação HTML atual. Isto pode causar erros de validação que obscurecem questões mais importantes na sua marcação.
  • Clareza do código: O atributo language é enganador para programadores que podem não perceber que não é funcional. Removê-lo mantém o seu código limpo e mais fácil de manter.
  • Preparação para o futuro: Embora os navegadores atualmente tolerem o atributo, não há garantia de que continuarão a fazê-lo indefinidamente. Depender de funcionalidades obsoletas é um risco de manutenção.

Como corrigir

Simplesmente remova o atributo language dos seus elementos <script>. Se está a usar JavaScript (a grande maioria dos casos), não é necessária qualquer substituição. Se precisar de especificar um tipo não predefinido, use o atributo type em vez disso.

Exemplos

❌ Obsoleto: usar o atributo language

<script language="JavaScript">
  console.log("Hello, world!");
</script>
<script language="JavaScript" src="app.js"></script>

✅ Corrigido: atributo removido

Para JavaScript inline, simplesmente omita o atributo:

<script>
  console.log("Hello, world!");
</script>

Para scripts externos, apenas src é necessário:

<script src="app.js"></script>

✅ Usar o atributo type quando necessário

Se precisar de especificar um tipo de script — por exemplo, um módulo ES ou um bloco de dados — use o atributo type padrão:

<script type="module" src="app.js"></script>
<script type="application/json">
  { "key": "value" }
</script>

Note que type="text/javascript" é válido mas redundante, uma vez que JavaScript é a predefinição. Pode omiti-lo com segurança para scripts padrão.

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.