На самом деле нет, это не недействительно, если это встроенные элементы (промежутки, изображения ...).
И в HTML5 также допустимо использовать блочные элементы (div или, как ваши примеры,заголовки).Однако Firefox не очень-то это нравится.
Так что, если вы хотите придерживаться старого HTML 4 / XHTML 1, вам нужно превратить эти заголовки в промежутки (и стилизовать их соответствующим образом), а есливы используете HTML5, а Firefox ведет себя нормально, ваш код в порядке (примечание: в любом случае нет смысла использовать подобные заголовки).