Sacando el tema. Si no se hace en ese orden, es por que los navegadores no visuales toman el formato predeterminado, y los objetos en línea no pueden contener en bloque.
Pero por el lado opuesto, se pueden convertir con CSS elementos en línea a elementos en bloque, perfectamente funcional para crear áreas enteras que funcionen como un anchor, aunque sean un span convertido a elemento de bloque