vignette|Fichier HTML très simple 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. 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.