HTML noscript

HTML noscript

HTML noscript stellt alternativen Inhalt bereit, wenn der Browser das script-Tag nicht erkennt oder Javascript im Browser deaktiviert ist.

Mit HTML5 kann noscript sowohl im body- als auch im head-Element des HTML-Dokuments stehen. Wenn noscript im head steht, dürfen nur meta-, link- und style-Tags im noscript-Tag notiert werden.

Mit einem noscript-Tag im body-Element können alle HTML-Tags verwendet werden, die im body-Tag einer normalen Webseite stehen dürfen. Der Inhalt des noscript-Tags wird aber nur angezeigt, wenn Javascript im Browser deaktivert ist oder der Browser keine Scripte ausführen kann.

noscript-Beispiele

Formulare werden häufig bereits clientseitig im Browser des Benutzers geprüft, um dem Benutzer das Ausfüllen zu erleichtern. Im noscript-Tag kann Benutzern, die Javascript deaktiviert haben, dass ihnen ohne Javascript ein komfortables Ausfüllen versagt bleibt.

Ein anderes Beispiel: Browsern, in denen JavaScript deaktiviert ist, oder die von Haus aus keinen Script-Support bieten, wird eine Select-Liste geboten. Wenn der Benutzer eine Option ausgewählt hat, wird er direkt auf die Seite geleitet.

<script type="text/javascript"> 
   var show = document.getElementById('showscript');
   …
</script> 
<!-- Für Browsern ohne Script-Unterstützung -->
<noscript> 
   <ul> 
      <li><a href="script.html">Das script-Tag</a> <br /></li>
      <li><a href="object.html">Das object-Tag</a> <br /></li>
      <li><a href="select.html">Das select-Tag</a> <br /></li>
   </ul> 
</noscript> 

Darstellung

JavaScript deaktivieren, um die unterschiedliche Darstellung zu sehen.

Script-Support entdecken

Heute deaktiviert kaum jemand Javascript im Browser. Aber gestern bot die Generation der Handys vor dem iPhone keinen Javascript-Support, heute sind es der Hochsicherheitstrakt in einem Unternehmen oder ein Fernseher oder der Kühlschrank.

Dabei muss man sich darüber im Klaren sein, dass noscript eine schwache Methode ist, um fehlende Script-Unterstützung zu erkennen. Es kann durchaus sein, dass Script-Inhalt schon durch Proxie-Filter eliminiert oder durch die Firewall blockiert wird. Dann denkt der Browser, dass er Scripte erkennt und der Inhalt des noscript-Tags wird gar nicht erst angezeigt.

Die beste Praxis ist immer noch, Javascript für Verbesserungen der Benutzeroberfläche zu benutzen (Progressive Enhancement), aber nicht für die Darstellung des Inhalts.

Es gibt praktikablere Methoden, fehlende Script-Unterstützung zu erkennen. Das ist fast schon ein Standard: In das body-Tag wird class="no-js" eingesetzt und mit Javascript entfernt.

Ist class="no-js" vorhanden, dann haben wir keinen Script-Support und können Inhalt durch CSS einblenden.

Auch aus Sicht der Suchmaschinen-Optimierung ist das noscript-Tag keine Option. In der Vergangenheit wurde das noscript-Tag missbraucht, um Keywords und Links unterzubringen.