allora, ho risolto sostituendo la dtd xhtml con una dtd html. Così va con tutti i browser, tranne con firefox (che era l'unico che funzionava correttamente con una dtd xhtml).
In parole povere, quello che era un problema per gli altri browser, adesso è un problema di firefox.
Visto che è praticamente impossibile inserire 2 dtd, cosa posso fare senza dover ricorrere ai commenti condizionali?