Originariamente inviato da AnFrusch@pepp
qui si potrebbe discutere, prova a vedere qui: http://pro.html.it/articoli/id_416/i...pag_2/pag.html

per il resto vedrò di farlo funzionare, grazie.

No ha ragione anFrush ho sbagliato io, <span> è un inline element, mentre <h1> è un block level element e può contenere altri inline lement come appunto <span>, la lista completa degli inline e dei block level la trovate qui sotto:
block-level elements
inline lements

Mentre l'esempio di html.it viene validato, come si vede nella pagina del validatore W3C Validator

Ma non è finita:
Anche io avevo consigliato di non ricorrere ai livelli perchè per un esempio banale ricorrere ai livelli avrebbe complicato il codice, invece è giusto farvi ricorso perchè è bene distinguere e mettere ordine, quindi il tuo codice diventa:
codice:
<div>
<img src="......>
<h2>Ma ciao!!</h2>
</div>
solo perchè è inutile usare uno <span> qui, dato che le stesse impostazioni che davi a <span> le puoi dare direttamente a <img> e <h2>, magari usando delle classi per distinguerli dagli altri elementi uguali della pagina o usando impostazioni inline: <img style=' ... per capirci.