Me suena eso de los "retos"
:
No creo que sea tan difícil...
Si el value es el predeterminado y se da el foco transitar hacia la cadena vacía: onfocus="if (this.value == ' comentario ') limpiarTexto(this)"
y si el value es una cadena vacía y se pierde el foco se restaura el comentario original: onblur="if (this.value =='') restaurar(this, ' comentario ')"
Las transiciones en el texto se controlarían mediante "setTimeout"...
Tan solo es una semilla... cuando tenga más tiempo me pondré las pilas para hacer una "chapucilla"
Saludos