Nach meiner Auffassung spricht nichts gegen Javascript, solange die Seite auch ohne voll benutzbar bleibt.
Ich las mal einen äußerst interessanten Artikel, in dem folgende absolut logische, eigentlich auch sehr naheliegende und für mich damals trotzdem (zumindest in dieser Präzision/Klarheit) neue Sichtweise erläutert wurde:
HTML definiert Struktur und Inhalt. CSS bildet darüber hinaus die
Ebene der Präsentation und Javascript die
Ebene des Verhaltens.
Struktur und Inhalt eines HTML-Dokuments sind unabhängig von Präsentations- und Verhaltensebene. Die darin enthaltene Information ist auch ohne assoziiertes CSS und/oder JS vollständig nutzbar. Dieser "Grundwert" des HTML-Dokuments kann durch CSS und JS weder erhöht noch verringert werden.
Ebenso sind Präsentations- und Verhaltensebene untereinander bzw. voneinander unabhängig (auch sehr wichtig, dazu später mehr).
CSS kann dem Dokument als Ebene der Präsentation hinzugefügt werden, um seine visuelle Darstellung zu verbessern und damit die Erschließung von Inhalt und Struktur zu vereinfachen (oder auch einfach nur ästhetisch ansprechender zu machen), d.h. den Nutzwert des Dokuments (aber niemals seinen Grundwert / den originalen Informationsgehalt) zu erhöhen.
Gleiches gilt für JS auf der Ebene von Verhalten und Bedienung:
Genau wie CSS kann auch JS die Erschließbarkeit von Inhalt und Struktur verbessern, in dem Funktionalität hinzugefügt wird, die die Nutzung des Dokuments vereinfacht.
Daraus folgt:
1. Der Inhalt eines HTML-Dokument muss auch ohne CSS und JS voll zugänglich sein (wurde bereits gesagt)
2. Der Inhalt muss auch dann voll zugänglich sein, wenn eine Präsentationsebene (CSS) vorhanden ist, die ebenfalls vorgesehene Verhaltensebene (JS) aber (aus welchen Gründen auch immer) fehlt.
Sprich: Wenn JS die Präsentation (das CSS) manipuliert, dann muss die Ausgangssituation (das fest notierte CSS) so gestaltet sein, dass die Seite auch bei Ausfall des JS voll nutzbar ist. Beispiel: Es ist nicht zulässig, ein DIV im fest notierten CSS per display:none auszublenden und vorzusehen, dass es vom Javascript eingeblendet wird.
Falls also mit CSS-Formatierungen gearbeitet wird, die nur im Zusammenhang mit Javascript-Funktionalität Sinn ergeben, dann sollten sie auch per JS initialisiert werden und nicht von vornherein im festen CSS notiert sein.
Regel Nr. 3 - der Umkehrschluss, dass das JS auch ohne CSS funktionieren muss, ergibt nur begrenzt Sinn. Da JS ohne CSS nichts ein- und ausblenden kann, muss in dieser Hinsicht nichts berücksichtigt werden. Man kann aber generell versuchen, die Funktionalität seines JS-Codes möglichst unabhängig von CSS zu realisieren. Dazu fällt mir leider nur ein sehr schwaches Beispiel ein, aber es verdeutlicht hoffentlich trotzdem, was gemeint ist:
Wenn man ein Formularfeld per JS deaktivieren möchte, sollte man seine besser "disabled"-Eigenschaft ändern, anstelle es z.B. per CSS auszublenden, denn dies würde ohne CSS-Unterstützung nicht funktionieren.
Und zu guter letzt Regel Nr. 4:
Genau wie CSS idealerweise in externen Dateien notiert wird, die lediglich im Head-Bereich des HTML-Dokuments mit diesem verknüpft werden, sollte man JS-Code nach Möglichkeit ebenfalls komplett auslagern, d.h. auch keine Event-Handler ("onmouseover" etc.) direkt im HTML notieren.
Diese
Trennung von Inhalt und Verhalten ist fast immer möglich, wird aber im Gegensatz zur
Trennung von Inhalt und Präsentation (welche ja in aller Munde ist) kaum bzw. meistens nur inkonsequent praktiziert.
Aus alldem folgt,
dass nichts dagegen spricht, JS einzusetzen, solange man es richtig macht und sein HTML-Dokument damit aufwertet, aber niemals unter den Grundwert des rohen HTML ohne JS und CSS abwertet.
So weit, so gut. Ich hoffe, der Beitrag ist einigermaßen verständlich - ich hab lange genug gebraucht, um es ungefähr so auszudrücken, wie ich es im Kopf hatte

.