C'est un code très naïf bien que correct à la norme html5, sans plus.
La structure est plutôt "ancienne" et ne répond pas aux standards actuels.
Si un étudiant pond ça il aura certainement pas la note maximale...
À noter que ce n'est pas que du html mais aussi du JS embarqué, vu que HTML n'est qu'un langage de description, pas "algorithmique".
-----