Hallo,
Und dies nur für IE.
Du preist diese Lösung als besonders vorteilhaft an, dabei ist sie eine der schlechteren. Auf placeholder aus HTML5 wurde in den StudiVZ-Blog-Kommentaren ja schon hingewiesen, dafür gibt es verschiedene brauchbare Implementierungen, die abfragen, ob der Browser das Feature schon unterstützt und sich im nur negativen Falle einschalten. Davon ganz abgesehen:
»Bei dieser Lösung sind Präsentationsschicht (CSS) und Verhaltensschicht (JavaScript) sauber voneinander getrennt.«
Soweit ich das sehe, ist das gerade nicht der Fall. Wenn JS deaktiviert ist, dann sind die Labels komplett unsichtbar. Wenn JS aktiviert ist, dann sind sie für viele Screenreader unsichtbar, weil sie standardmäßig auf display:none gesetzt sind. Außerdem ist die Präsentation feste ins JS gecodet: Da wird ja direkt .style.display = inline/none gesetzt. Wirklich Trennung von CSS und Verhalten wäre, wenn JS nur eine Klasse setzt, um die Änderung des Status widerzuspiegeln. Erst damit greift die nötige, ins CSS ausgelagerte Umformatierung und die Labels werden versteckt bzw. über die Felder gelegt. So könnte man auch ein barrierefreies Verstecken umsetzen (z.B. Off-Left-Methode). Wenn du auf besagte Trennung Wert legst, sollte das JavaScript davon abhängig sein, wie sich dieser Statuswechsel konkret in der Darstellung niederschlägt.
Zudem setzt das Script globale Variablen, da wäre ein anonymer Funktionswrapper (function () { ... })(); sinnvoll.
Mathias