Moteur de rendu HTML

Un moteur de rendu HTML est le composant logiciel de tous les navigateurs permettant d'afficher une page web : il transforme un document HTML, ainsi que toutes les autres ressources associées à la page, en une représentation visuelle interactive pour l'utilisateur. Il est de ce fait le cœur d'un navigateur web.

Depuis le début d'Internet, de nombreux moteurs de rendu ont été utilisés. Néanmoins, avec la complexification des standards, nous assistons ponctuellement à une réduction du nombre de ceux-ci au profit de l'emploi d'un même moteur dans plusieurs navigateurs. 

Par exemple, depuis  2018,  le moteur dominant Blink, de Google est suivi par  Gecko et Webkit. Progressivement, quelques navigateurs internet principaux, utilisant Trident ou Presto, les ont remplacés par Blink.

Champ d'application 

Un moteur de rendu HTML n'est pas un logiciel à part entière, mais une pièce critique d'un autre logiciel, par exemple un navigateur web. Le mot moteur dérive d'une analogie avec la voiture.

Il sera question dans cet article de «moteur de rendu HTML», sans distinguer rendu et mise en page. En anglais, on distingue parfois le «moteur de mise en page» (layout engine) et le «moteur de rendu» (rendering engine), mais le plus souvent c'est du «moteur de navigateur» (browser engine) dont on parle, car les deux moteurs, distincts sur le plan théorique, sont en réalité difficiles à considérer individuellement. 

Outre la mise en page, le moteur de rendu HTML doit connaître et appliquer les règles Content Security Policy entre les documents et établir la structure de données Document Object Model (DOM), qui sera sujette aux modifications via les langages de script. Ils gèrent aussi les hyperliens et les formulaires web.

L'exécution des programmes JavaScript est gérée par le moteur JavaScript dédié de chaque navigateur. Le langage JavaScript fut créé à l'origine pour être utilisé au sein des navigateurs, mais aujourd'hui, il est aussi utilisé hors des navigateurs. Dans un navigateur Web, les deux moteurs travaillent de concert via la structure de données DOM, partagée.

Les moteurs de rendus HTML peuvent être utilisées dans des logiciels qui ne sont pas des navigateurs (tout comme un moteur de voiture peut être réutilisé ailleurs). Par exemple, un client de messagerie électronique peut en utiliser un pour afficher un courriel en HTML. Le framework Electron, qui prend sa source dans le navigateur web Google Chrome, a été par exemple utilisé pour créer de nombreux logiciels.

Mise en page et rendu 
La mise en page d'une page Web est généralement déclarée dans des feuilles de style en cascade (CSS). Chaque feuille de style est une série de règles que le moteur interprète. Par exemple, certaines règles disposent les détails typographiques de la page web, tels que la police de caractère (ou fonte), la couleur, la taille du texte. Le moteur combine toutes les règles CSS utiles pour calculer précisément les coordonnées graphiques afin d'obtenir une représentation conforme sur l'écran.

Certains moteurs de rendu commencent leur travail avant même que toutes les ressources de la page soient téléchargées. Cela peut alors entraîner des changements visuels au fur et à mesure que les données sont téléchargées : les images apparaissent peu à peu, parfois se produit un FOUC.

Liste des moteurs de rendu HTML 
En 2022, les principaux moteurs encore utilisés sont au nombre de trois :
 Webkit (Safari),
 Blink (Chromium et dérivés : Google Chrome / Microsoft Edge / Brave / ...),
 Gecko (Mozilla Firefox)

Voici une liste des moteurs de rendu HTML et des logiciels les utilisant ou les ayant utilisé. 
 Gecko de la Fondation Mozilla
 SeaMonkey
 Mozilla Firefox
 Mozilla Thunderbird
 Servo
 Camino
 Flock (avant la version 3)
 Beonex Communicator
 Netscape (depuis la version 6)
 K-Meleon
 Galeon
 Kazehakase
 Pale Moon (avec Goanna, basé sur Gecko)
 Cyberfox
 Waterfox
 Nvu
 Kompozer
 BlueGriffon
 KHTML du projet KDE, puis son dérivé WebKit
 Konqueror
 ABrowse
 GtkHTML du projet GNOME (basé sur KHTML, plus vraiment utilisé il semblerait…)
 NetFront (microbrowser conçu pour les petits appareil comme Nintendo 3DS, PSP, Palm OS...)
 WebCore d'Apple (il est, à l'origine, basé sur KHTML)
 Epiphany
 Flock (depuis la version 3)
 iCab (depuis la version 4)
 iWeb
 OmniWeb
 RapidWeaver
 Safari
 Shiira
 SunriseBrowser
 Swift
 Midori
 Origyn Web Browser
 Sputnik
 Naveo
 Protom Navigator
 Blink dérivé de WebKit
 Brave
 Google Chrome
 Chromium
Maxthon depuis sa version 6
 Opera depuis sa version 15
 Vivaldi
Microsoft Edge depuis 2020
 Trident de Microsoft
 la version Windows d'Internet Explorer (depuis la version 4.0)
 Netscape (dans la version 8)
 Maxthon
 Avant Browser
 AOL Explorer
 Yahoo Explorer
 iRider
 Tasman de Microsoft
 la version Macintosh d'Internet Explorer
 Elektra de Opera Software
 Opera de sa version 4 à 6
 Presto de Opera Software
 Opera de sa version 7 à 14
 Macromedia Dreamweaver
 Adobe Creative Suite 2
 iCab de iCab Company
 iCab (avant la version 4)
 Mariner de Netscape Communications Corporation (il n'a jamais été commercialisé)
 Netscape Communicator 5

Voir aussi 
 Hypertext Markup Language (HTML)
 Feuilles de style en cascade (CSS)
 Document Object Model (DOM)
 moteur JavaScript (JS)

Références 

Composant logiciel
Moteur de rendu HTML