[2] スクリプトが有効、スクリプトが無効とは、 スクリプトの実行の可否を指します。またHTML構文解析器にはスクリプトフラグがあります。
[3] 閲覧文脈については、次の条件がすべて満たされた時スクリプトが有効となり、 そうでないときスクリプトが無効となります >>1。
[7] 節点については、節点文書が関連付けられた閲覧文脈を持ち、 その閲覧文脈についてスクリプトが有効であるならスクリプトが有効であり、 そのような閲覧文脈がないか、閲覧文脈でスクリプトが無効なら、スクリプトが無効です >>1。
[13] スクリプトの有効性は次の場面に影響します。
[23] スクリプトの実行中にスクリプトが無効にされた時は、 スクリプトは直ちに終端されるべきです >>22。
[46] 設定群オブジェクトに関するスクリプトを実行できるか検査は、 次のようにしなければなりません >>37。
[54] この検査はかつてはコールバックを走らせる準備の一部として定義されていました。
[9] HTML構文解析器が作られた時点において構文解析器と関連付けられた文書節点のスクリプトが有効なら、 構文解析器のスクリプトフラグが「有効」に設定されます。そうでなければ「無効」に設定されます。 >>8
[37] XML構文解析器にはXMLスクリプト対応有効またはXMLスクリプト対応無効のフラグがあります。既定値は有効です。 >>41
[26] 古くからWebブラウザーの設定画面にはスクリプトを無効にするオプションが用意されていました。
[24] スクリプトにより (alert
など) またはスクリプトの動作により
(実行時間制限を超えた場合など) 利用者が反応を求められる時には、
利用者エージェントは利用者がスクリプトを無効にできるようにすることがすすめられています
>>22。
[25] 利用者エージェントは、閲覧文脈を閉じるためだけのためにスクリプトを無効にする方法
(例えば unload
を実行しないで閲覧文脈を閉じるなど) を提供して構いません
>>22。
[28] Webブラウザーによっては、タブごと、起源ごとなどの単位でスクリプトを無効にするメニュー項目などが用意されています。
[30] 利用者エージェントはスクリプトを実装することが義務付けられていません。
[31] 著者は、スクリプトが実装されない可能性があること、 実装されていても無効化されている可能性があることを認識し、 できるだけスクリプトが動作しなくても利用可能であるように配慮するべきです。
[32] とはいえ現在 Web 上の相当大多数の文書は、スクリプトが実行されることを想定しています。 そのほとんどすべては JavaScript が実行されることを要求しています。 利用者エージェントがWeb互換であるためには、 あまり古くない版の JavaScript を実装し、既定の状態で有効としなければなりません。
[33] スクリプトを実装しない利用者エージェントはスクリプトが無効な状態で動作するのが好ましいと考えられますが、 0種類のスクリプト言語を実装しているとの認識のもと、スクリプトが有効な状態で動作するものもあるかもしれません。
[34] スクリプトを実装する (1つ以上のスクリプト言語を実装する) 利用者エージェントであっても、スクリプトが有効な場合の処理とスクリプトが無効な場合の処理の両方を実装する必要があります。
[57] Webサイトによっては、著者の自己本位なスクリプトが実行されることにより、 利用者の閲覧操作が妨害されるケースがあります。利用者エージェントは、 利用者の体験を向上させるため、 Webサイトないし起源、 あるいはWebページ単位でスクリプトが無効に固定する機能を提供するべきかもしれません。
[14] innerHTML
や XSLTProcessor
や、一旦実行された
script
要素ではスクリプトが実行されませんが、これは
"already-started" flag によって処理されるので、スクリプトが有効か否かとは別です。
[29] Clarify settings object, realm, and global relationships · whatwg/html@0866f1b ( 版) <https://github.com/whatwg/html/commit/0866f1b3f4b4ea5a99a30909e9bbe557dea0b460>
[60] Editorial: clean up "scripting is disabled" usage (Ms2ger著, ) <https://github.com/whatwg/html/commit/56d66456a2103fe2ade93b9ca5a305d19dfbfae8>
iframe
要素のsandbox
属性や CSP のsandbox
指令によって設定できます。