La balise HTML <applet>
La balise HTML <applet> intégrait des applets Java dans une page. Découvrez pourquoi elle a été supprimée et ce qui la remplace.
La balise <applet> était utilisée pour intégrer un applet Java — un petit programme écrit en Java — directement dans une page web. Elle est obsolète : aucun navigateur moderne ne peut exécuter des applets, la balise n'a donc aucun effet dans les navigateurs actuels et ne doit pas être utilisée dans les nouvelles pages. Ce chapitre explique ce que faisait <applet>, pourquoi elle a disparu, et ce qu'il convient d'utiliser aujourd'hui.
L'élément <applet> pouvait contenir d'autres balises HTML et du texte entre ses balises d'ouverture et de fermeture. Ce contenu de remplacement était affiché lorsque l'applet ne parvenait pas à se charger — ce qui, aujourd'hui, est toujours le cas.
Pourquoi <applet> est obsolète
Les applets Java reposaient sur un plug-in de navigateur (le Java Plug-in) chargé via l'interface de plug-in NPAPI. Deux événements ont mis fin à cette approche :
- NPAPI a été supprimé des navigateurs. Chrome a désactivé NPAPI par défaut en 2015 et l'a entièrement retiré ; Firefox a abandonné la prise en charge des plug-ins autres que Flash en 2017. Sans NPAPI, il n'existe plus aucun moyen pour le navigateur d'héberger le Java Plug-in.
- Le Java Plug-in a atteint sa fin de vie. Oracle a annoncé son intention de retirer le plug-in de navigateur en 2016, l'a formellement déprécié avec le JDK 9 (2017), et l'a supprimé du JDK avec le JDK 11 (2018). Même avec un navigateur compatible, il ne reste plus aucun plug-in pour l'exécuter.
Ces suppressions ont été motivées par le modèle de sécurité des navigateurs : les plug-ins natifs intégrés dans la page s'exécutaient avec un large accès système et étaient une source fréquente d'exploits, aussi les éditeurs les ont-ils progressivement abandonnés au profit de technologies web en bac à sable.
Qu'est-ce qui remplace les applets Java aujourd'hui ? Il n'existe pas de remplacement direct, car l'objectif — exécuter du code natif arbitraire dans la page — a été intentionnellement abandonné. Les équivalents modernes dépendent de ce que faisait l'applet :
- Pour les calculs ou les jeux, portez la logique en JavaScript et dessinez avec l'élément
<canvas>ou WebGL. - Pour du code natif existant ou à haute performance, compilez-le en WebAssembly et appelez-le depuis JavaScript.
- Pour l'intégration de médias externes ou de documents, utilisez l'élément
<embed>ou<object>.
Cet élément est une balise HTML dépréciée en HTML 4.01 et est entièrement obsolète en HTML5. Il a été retiré du standard et ne fonctionnera dans aucun navigateur moderne. Pour de nouveaux projets, utilisez JavaScript, WebAssembly, ou les éléments <object> / <embed> à la place.
Syntaxe
La balise <applet> fonctionne en paires. Le contenu est écrit entre les balises d'ouverture (<applet>) et de fermeture (</applet>).
Exemple de la balise 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>Il s'agit d'un exemple historique fourni à titre de référence uniquement. Étant donné qu'aucun navigateur actuel ne peut charger des applets Java, l'aperçu en direct sera vide — les navigateurs modernes affichent uniquement le contenu de remplacement (ici, le texte en gras) ou rien du tout. La balise <param> transmettait des valeurs de configuration à l'applet.
Résultat
La capture d'écran ci-dessous montre à quoi ressemblait un applet fonctionnel dans un ancien navigateur avec le Java Plug-in installé.

Remplacement historique avec la balise HTML <object> :
En HTML 4.01, l'élément <object> était préconisé comme remplacement standard de <applet>. Les valeurs Java spécifiques codetype et classid présentées ci-dessous sont elles-mêmes obsolètes et ne s'exécutent plus dans aucun navigateur — elles sont documentées uniquement pour illustrer le chemin de migration historique, et non comme code fonctionnel.
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>Ce snippet s'affichera également vide dans les navigateurs modernes. Pour de vrais projets, remplacez la fonctionnalité des applets par JavaScript et <canvas>, ou compilez du code natif en WebAssembly. Les éléments <object> et <embed> restent utiles pour intégrer des médias et des documents externes.
Attributs
Les attributs ci-dessous s'appliquaient uniquement à l'élément <applet>. Ils sont obsolètes et ne font partie d'aucun standard HTML actuel — ils n'auront aucun effet dans les navigateurs modernes. Ce tableau est fourni à titre de référence historique.
| Attribut | Valeur | Description |
|---|---|---|
| align | left right top bottom middle baseline | Sert à positionner l'applet par rapport aux autres éléments. |
| alt | texte | Sert à définir un texte alternatif pour l'applet. |
| archive | URL | Sert à définir l'emplacement du fichier d'archive. |
| code | URL | Sert à définir le nom de l'applet Java. |
| object | name | Sert à définir une référence vers une représentation sérialisée d'un applet. |
| codebase | URL | Fournit une URL de base relative pour les applets spécifiés dans l'attribut code. |
| height | pixels | Définit la hauteur de l'applet. |
| hspace | pixels | Sert à définir l'espace horizontal autour de l'applet. |
| name | name | Sert à donner un nom à l'applet. |
| vspace | pixels | Sert à définir l'espace vertical autour d'un applet. |
| width | pixel | Sert à définir la largeur d'un applet. |