W3docs

Tag HTML <applet>

A tag HTML <applet> incorporava Java applets em páginas. Saiba por que foi removida, o que a substituiu e veja exemplos legados.

A tag <applet> era utilizada para incorporar um Java applet — um pequeno programa escrito em Java — diretamente numa página web. Ela é obsoleta: nenhum navegador moderno consegue executar applets, portanto a tag não faz nada nos navegadores atuais e não deve ser usada em páginas novas. Este capítulo explica o que a <applet> fazia, por que desapareceu e o que utilizar hoje em dia.

O elemento <applet> podia conter outras tags HTML e texto entre as suas tags de abertura e fechamento. Esse conteúdo de fallback era exibido quando o applet falhava ao carregar — o que, hoje em dia, acontece sempre.

Por que <applet> é obsoleta

Os Java applets dependiam de um plug-in de navegador (o Java Plug-in) carregado por meio da interface de plug-in NPAPI. Dois fatores encerraram essa abordagem:

  • A NPAPI foi removida dos navegadores. O Chrome desativou a NPAPI por padrão em 2015 e a removeu completamente; o Firefox abandonou o suporte a plug-ins que não fossem Flash em 2017. Sem a NPAPI, não há como o navegador hospedar o Java Plug-in.
  • O Java Plug-in chegou ao fim de vida. A Oracle anunciou seu plano de desativar o plug-in de navegador em 2016, o tornou formalmente obsoleto com o JDK 9 (2017) e o removeu do JDK com o JDK 11 (2018). Mesmo com um navegador compatível, não há mais plug-in disponível para executar.

Essas remoções foram motivadas pelo modelo de segurança dos navegadores: plug-ins nativos incorporados à página rodavam com amplo acesso ao sistema e eram uma fonte frequente de exploits, por isso os fornecedores os eliminaram gradualmente em favor de tecnologias de plataforma web em sandbox.

O que substitui os Java applets hoje? Não existe uma substituição direta, porque o objetivo — executar código nativo arbitrário na página — foi intencionalmente eliminado. Os equivalentes modernos dependem do que o applet fazia:

  • Para computação ou jogos, porte a lógica para JavaScript e desenhe com o elemento <canvas> ou WebGL.
  • Para código nativo de alto desempenho ou existente, compile-o para WebAssembly e chame-o a partir do JavaScript.
  • Para incorporar mídia externa ou documentos, use o elemento <embed> ou <object>.
Perigo

Este elemento é uma tag HTML obsoleta no HTML 4.01 e está completamente obsoleto no HTML5. Foi removido do padrão e não funcionará em nenhum navegador moderno. Para novos projetos, use JavaScript, WebAssembly ou os elementos <object> / <embed>.

Sintaxe

A tag <applet> vem em pares. O conteúdo é escrito entre as tags de abertura (<applet>) e fechamento (</applet>).

Exemplo da tag HTML <applet>:

HTML applet Code 1

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
  </head>
  <body>
    <applet code="game.class" align="left" archive="game.zip" height="250" width="350">
      <param name="difficulty" value="easy" />
      <b>You need Java to play this game.</b>
    </applet>
  </body>
</html>
Aviso

Este é um exemplo legado apenas para referência. Como nenhum navegador atual consegue carregar Java applets, a pré-visualização ao vivo estará vazia — os navegadores modernos exibem apenas o conteúdo de fallback (aqui, o texto em negrito) ou nada. A tag <param> passava valores de configuração para o applet.

Resultado

A captura de tela abaixo mostra como um applet funcional aparecia antigamente num navegador antigo com o Java Plug-in instalado.

Um jogo em Java applet renderizado num navegador mais antigo com o Java Plug-in

Substituição legada com a tag HTML <object>:

No HTML 4.01, o elemento <object> foi sugerido como substituto padrão para a <applet>. Os valores Java específicos codetype e classid mostrados abaixo são eles próprios obsoletos e não funcionam mais em nenhum navegador — estão documentados apenas para mostrar o caminho histórico de migração, não como código funcional.

HTML object example (legacy)

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
  </head>
  <body>
    <object codetype="application/java" classid="java:programmingtutorials.class" height="200" width="200">Programming Tutorials</object>
  </body>
</html>
Aviso

Este trecho também será renderizado em branco nos navegadores modernos. Para projetos reais, substitua a funcionalidade dos applets por JavaScript e <canvas>, ou compile código nativo para WebAssembly. Os elementos <object> e <embed> continuam úteis para incorporar mídia e documentos externos.

Atributos

Os atributos abaixo se aplicavam exclusivamente ao elemento <applet>. Eles são obsoletos e não fazem parte de nenhum padrão HTML atual — não terão efeito nos navegadores modernos. Esta tabela existe apenas para referência histórica.

AtributoValorDescrição
alignleft right top bottom middle baselineÉ usado para posicionar o applet em relação a outros elementos.
alttextÉ usado para criar um texto alternativo para o applet.
archiveURLÉ usado para definir a localização do arquivo compactado.
codeURLÉ usado para definir o nome do Java applet.
objectnameÉ usado para definir uma referência a uma representação serializada de um applet.
codebaseURLFornece uma URL base relativa para applets especificados no atributo code.
heightpixelsDefine a altura do applet.
hspacepixelsÉ usado para definir o espaço horizontal ao redor do applet.
namenameÉ usado para atribuir um nome ao applet.
vspacepixelsÉ usado para definir o espaço vertical ao redor do applet.
widthpixelÉ usado para definir a largura do applet.

Prática

Prática
Quais das afirmações a seguir sobre a tag HTML <applet> estão corretas?
Quais das afirmações a seguir sobre a tag HTML <applet> estão corretas?
Was this page helpful?