HTML no es un lenguaje de programación; es un lenguaje de marcado que define la estructura de tu contenido. HTML consiste en una serie de elementos que usarás para encerrar diferentes partes del contenido para que se vean o comporten de una determinada manera. Las etiquetas de encierre pueden hacer de una palabra o una imagen un hipervínculo a otro sitio, se pueden cambiar palabras a cursiva, agrandar o achicar la letra, etc.
A lo largo de sus diferentes versiones, HTML ha experimentado la incorporación y eliminación de distintas características, con el propósito de optimizar su eficiencia y facilitar el desarrollo de páginas web compatibles con varios navegadores y plataformas (PC de escritorio, portátiles, teléfonos inteligentes, tabletas, etc.) No obstante, para interpretar adecuadamente una nueva versión de HTML, los desarrolladores de navegadores web deben incorporar estos cambios, y los usuarios debe ser capaces de usar la nueva versión del navegador con todas las actualizaciones aplicadas. Por lo general, estos cambios se implementan mediante actualizaciones automáticas (Firefox, Chrome) u ofreciendo una nueva versión del navegador con todas las modificaciones incorporadas, disponible en un sitio web de descarga oficial (Internet Explorer). En consecuencia, un navegador desactualizado no podrá interpretar de manera precisa una página web escrita en una versión de HTML superior a la que soporta, lo que obliga a menudo a los desarrolladores a aplicar técnicas y cambios para resolver problemas de visualización e incluso de interpretación de código HTML.