HTML / Element / Initial coverage

<script>要素

状態: 初期Coverage 対象: HTML Living Standard 確認日: 2026-09-11

Technical Summary

script要素は、実行対象のclassic script・module script、または実行しないdata blockを文書へ組み込むためのscript-supporting elementです。

外部classic scriptでは、asyncは利用可能になった時点、deferはHTML解析後に評価します。module scriptは既定でHTML解析後に評価され、deferは効果を持ちません。

Definition / Variants

Variant判定の入口処理の要点
Classic scripttypeなし、またはJavaScript MIME type通常のJavaScriptとして評価。属性がなければ解析を止めて取得・評価する
Module scripttype="module"依存moduleも取得し、既定ではHTML解析後に評価する
Data blockJavaScript以外のtypescriptとして評価せず、アプリケーションが内容をデータとして扱う

したがって、typeは単なる表示用の文字列ではなく、script要素の種類と処理経路を選ぶ条件です。

Processing order

条件取得評価
classic / 外部 / 属性なしHTML解析中に取得取得後すぐ。HTML解析を一時停止
classic / 外部 / asyncHTML解析と並行利用可能になった時点。順序保証なし
classic / 外部 / deferHTML解析と並行解析完了後、文書内の順序で評価
modulemodule依存関係とともに取得既定では解析完了後。asyncを付けた場合は早期評価が可能
classic + no async/defer  → fetch → evaluate → continue parsing
classic + async          → fetch in parallel → evaluate when ready
classic + defer          → fetch in parallel → evaluate after parsing
module                   → fetch dependencies → evaluate after parsing

Attributes and boundaries

  • src外部scriptのsource URLを指定する。外部sourceを使う要素に実行用の本文を同時に置かない。
  • typeclassic、module、data blockなどのscript種別を選ぶ。
  • async / defer主に外部scriptの取得と評価のタイミングを選ぶ。moduleではdeferは効果を持たない。
  • policyCSPはscript要素そのものとは別のポリシー境界であり、許可されないscriptの実行を阻止し得る。

Fetch and failure boundary

外部scriptの処理は、要素の種類を決めるだけで完了しません。sourceの取得、module依存関係の取得、CORS、CSPなどの条件が後続の評価可否に関係します。特にcross-originのmodule scriptはCORS protocolを必要とします。

source markup
  ↓ determine script kind
  ↓ apply policy gates
  ↓ fetch source / module dependencies
  ↓ evaluate or expose data block

Fact / Evidence(主張 / 根拠)

主要Factを、適用条件・確認状態・仕様上の根拠位置と対応付けています。未完了の範囲は下のCoverage / Open Issuesに残しています。

主要Factと根拠位置
種別Fact / 主張条件・範囲状態根拠
SPECtype属性がclassic script、module script、data blockなどの種類を選びます。値がない、JavaScript MIME type、module、または別の非script typeの場合。確認済みHTML Standard: the script element
SPEC外部classic scriptにasyncdeferもない場合、取得・評価中はHTML解析を止めます。外部classic scriptで、2つのタイミング属性がない場合。確認済みHTML Standard: the script element
SPECasyncは準備できた時点で評価し、deferは解析完了後に文書順で評価します。外部classic scriptの場合。asyncは順序を保証しません。確認済みHTML Standard: scripting guidance
SPECmodule scriptは既定で解析後に評価され、deferは効果を持ちません。type="module"の場合。asyncは早期評価を選べます。確認済みHTML Standard: the script element
SPEC外部scriptとmodule依存関係の評価は、resource取得やpolicyの条件を受けます。外部またはcross-origin resourceの場合。Fetchやpolicyの境界が評価可否に関係します。確認済みFetch Standard

Evidence

  1. HTML Standard: The script element — 要素の種類、属性、processing model
  2. HTML Standard: Scripting, Edition for Web Developers — async、defer、moduleの評価タイミング
  3. Fetch Standard — 外部resource取得とCORSの境界

Implementation Evidence

仕様上の主張とは別に、ブラウザー実装・WPT・アクセシビリティ観測を記録します。未実施の項目は確認済みとは扱いません。

共通fixture / 実行環境: classic、application/json data block、inline module、動的に追加したclassic scriptを同一HTMLへ配置。Chrome 152.0.0.0 / Windows NT 10.0 / 確認日 2026-09-13。

script要素の実装Evidence登録表
種別再現確認の範囲記録する条件状態
IMPLclassic・module・data block、dynamic insertionの処理順序Chrome 152.0.0.0 / Windows NT 10.0 / 2026-09-13。classicはloading時に実行、動的追加classicは同じparser処理中に即時実行、moduleはinteractive時に実行。application/jsonはdata blockとして扱われ、実行ログなし確認済み
WPTscript種別、実行順序、module依存関係、Fetch/CORSに関係するテストとの対応106-noimport.html106-module-noimport.htmldynamically-created-defer-script.htmldata-url.htmlを対応付け。2026-09-15 / Chrome 152.0.0.0 / Windows NT 10.0 / wpt.liveで4件を実行し4/4 pass。選定外のWPTと他ブラウザーは未評価部分実行(4/4 pass)
AAM実行用scriptとdata blockがアクセシビリティツリーへ与える影響の観測Chrome 152.0.0.0 / Windows NT 10.0 / 2026-09-13。classic、module、data block自体はAX treeに公開されず、見出し・フォーム・tableなどの可視コンテンツだけが公開された観測済み

WPTの対応付けにはWPTリポジトリ、アクセシビリティの基準にはHTML-AAMを参照します。

Coverage / Open Issues

  • 確認済みclassic・module・data blockの区別、async・deferの基本的な処理順序
  • 未完了processing algorithmの全分岐、parser insertion、dynamic insertionの完全な追跡
  • 未完了CSP、Fetch、CORS、Referrer Policy、IntegrityのCross-Spec詳細
  • 未完了今回の実装・AX観測はChrome 1環境のみ。async/deferの外部script、複数ブラウザー、WPT、歴史的変更、実運用上の差分は未登録

このページは初期Coverageです。script要素に関する全事実の検証完了や、すべての実装で同一結果になることを意味しません。

Related surface

最小例と、defer・async・moduleの選び方はYugienのscript要素ページで説明しています。