Un elemento semántico es aquel que describe claramente su significado tanto para el navegador como para el desarrollador.
En versiones anteriores de HTML usábamos elementos como <div> y <span> , los cuales no nos informaban nada acerca del contenido. Pero ahora usamos, por ejemplo, <form>, <table> y <artículo> - las cuales crean elementos que informan exactamente que pueden contener.