Moteur de rendu HTML

Un article de Wikipédia, l'encyclopédie libre.
(Redirigé depuis Moteur de rendu de pages web)
Sauter à la navigation Sauter à la recherche
Page d'aide sur l'homonymie Pour les articles homonymes, voir Moteur de rendu.

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 mais, depuis la complexification des standards, on assiste maintenant à une réduction du nombre de ceux-ci et à l'emploi d'un même moteur dans plusieurs navigateurs. Le moteur dominant en 2018 est Blink, de Google, suivie par Trident, Gecko, Webkit et Presto. Or, les navigateurs principaux qui utilisaient Trident et Presto les ont abandonnés au profit de Blink.

Champ d'application[modifier | modifier le code]

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)[1],[2] et le «moteur de rendu» (rendering engine)[3],[2], mais le plus souvent c'est le «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é par le moteur JavaScript dédié de chaque navigateur. Le langage JavaScript fut créé à l'origine pour être utilisé au sein des navigateurs, mais est aujourd'hui 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[modifier | modifier le code]

La mise en page d'une page Web est généralement déclaré dans des Feuilles de style en cascade (CSS). Chaque feuile de style est une série de règle que le moteur interprète. Par exemple, certaines règles disposent les détails typographiques de la page web, tels que la fonte de caractères, 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és. Cela peut alors entraîner des changements visuels au fur et à mesure que les données sont téléchargés : les images apparaissent peu à peu, parfois il y a FOUC.

Liste des moteurs de rendu HTML[modifier | modifier le code]

Voici une liste des moteurs de rendu HTML et des logiciels les utilisant :

Voir aussi[modifier | modifier le code]

Références[modifier | modifier le code]

  1. « Gecko », Mozilla (consulté le 21 avril 2018)
  2. a et b « Introducing Goanna », M.C. Straver, (consulté le 21 avril 2018)
  3. « Behind the scenes of modern web browsers », Tali Garsiel (consulté le 21 avril 2018)