Tach!
Auf den Unsinn, ein für etwas völlig anderes gedachtes HTML-Attribut dazu zu missbrauchen, per JS ein
label
zu erstellen, kann aber auch nur ein JS-Entwickler kommen, der HTML nicht als Grundlage, sondern lediglich als störendes Beiwerk ansieht.
Angular Material, abgeleitet von Material Design, beides entwickelt von Google, alles nur JS-Entwickler ...
Man kann aber eine gewisse Konsistenz darin sehen. Die Beschriftung ist in Form von Platzhaltern vorgesehen, die sich bei einer Eingabe nach oben hin verziehen und zum Label werden. Ungeachtet davon, kann man ein separates Label definieren, das sich vom Platzhalter unterscheidet.
Abgesehen davon ist das Verstecken von Komplexität hinter einer einfacher verwendbaren Funktion oder Komponente eine bewährte Vorgehensweise. Warum sollte man das nicht auch auf ein HTML-ähnliches Template-System anwenden? Siehe auch Web Components.
Die Komponente krankt dennoch daran, dass die Beschriftung initial im Eingabefeld angezeigt wird und damit schlecht von einer getätigten Eingabe zu unterscheiden ist. Nicht machen, Kinder!
Gefällt mir auch nicht, deswegen nehm ich es nicht für eigene Projekte.
Es ist jedoch nicht so, dass sich die Entwickler von Material Design keine Gedanken zu dem machen, was sie da entwickeln. Beispiel.
dedlfix.