HTML ist dank Canvas, output, data- und diverser anderer Elemente und Techniken wie dem Speichern von Daten natürlich auch Teil von Programmen - aber in erster Linie doch immer noch eine Auszeichnungssprache.
Die Unterscheidung ist bei genauerem Hinsehen auch nicht ganz korrekt: Auszeichnungssprache und Programmiersprache schließen sich nicht aus - siehe XSLT. HTML ist eine domänespezifische Sprache für semantische Auszeichnung von digitalen Dokumenten. Mit WebComponents kann man die Domäne außerdem um benutzerdefinierte semantische Elemente erweitern - das eröffnet auch die Möglichkeit einer eingebetteten Turing-vollständigen Sprache.