目次に戻る

noscript要素:HTML Living Standard各要素別メモ

概要

カテゴリー
配置できる場所
  • HTML構文においては、上記カテゴリー要素が置ける場所。ただし、noscript要素祖先に持ってはならない。
  • XML構文においては、どこにも置けない。すなわち、使用禁止。
内容モデル
属性
HTML構文におけるタグの省略
  • 省略不可。
WAI-ARIA
  • すべてのrole及びすべてのaria-*属性は指定不可。
視覚系ブラウザデフォルトとして期待されるCSS

  @media(scripting) {
    noscript {display: none !important;}
  }
  
HTML extension

Polyglot Markup仕様では、この要素は使用禁止。

意味・用法

スクリプトが無効な場合にのみ表示(head要素内の場合は、有効)となるコンテンツを指定する。

スクリプトが有効な場合は、その内容は表示(head要素内の場合は、有効と)されない。

スクリプトサポートするユーザーエージェントサポートしないユーザーエージェントに異なるコンテンツを提示するために使用される。

noscript要素内のフォーム要素は、スクリプトが有効なため表示されてなくても、スクリプト等で操作はできる。

私見・補足

スクリプトが無効な場合の代替コンテンツとなる。

noscript要素内にscript要素を配置できる場合もあるようだが、なんとも奇妙なのでやめた方がいいだろう。

ユーザーエージェントにおいてスクリプトが有効である限り、個別の外部スクリプトの読み込みに失敗したり、個別のスクリプトスクリプト内の要因で機能しない場合でも、当該要素による代替コンテンツは表示されない。

HTML Living Standardではこの要素の使用はあまり推奨されておらず、代替コンテンツデフォルトで表示状態にしておいてスクリプトで消去する方法(スクリプトが無効なら表示状態のままになって、代替コンテンツとして機能する)が例示されている。

表示確認

ソース

  <div>スクリプトが有効なら下記に記載している文は表示されないはず。</div>
  <noscript>
    スクリプトが無効です。
  </noscript>
  
表示結果
スクリプトが有効なら下記に記載している文は表示されないはず。