En la práctica los desarrolladores nos hemos acostumbrado a conseguir este tipo de funcionalidad mediante código javascript y frameworks para interfaces de usuario, que a corto plazo implican un mayor esfuerzo de desarrollo y una curva de aprendizaje más empinada y a  largo plazo hacen más complejo el mantenimiento posterior del código.