HTML / Element / Initial coverage

<progress>要素

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

Technical Summary

progress要素は、タスクの完了進捗を表します。完了量と最大量が分かる確定状態、または進捗はあるが残量が分からない不定状態を持ちます。

value属性があれば確定状態、なければ不定状態です。progressはタスク完了を表す要素であり、ディスク使用率などの測定値にはmeter、計算結果にはoutputを使います。

Definition / Categories

項目定義
意味タスクの完了進捗
CategoriesFlow content、Phrasing content、Labelable、Palpable
ContextPhrasing contentが期待される場所
Content modelPhrasing content。ただし子孫にprogress要素を置かない
Tag omission開始タグ・終了タグとも省略不可
Content attributesグローバル属性、valuemax
DOM interfaceHTMLProgressElement

確定状態と不定状態

確定状態では、現在値と最大値から完了割合を計算できます。不定状態では、処理が進行中であることは分かるものの、完了までにどれだけ残っているかは分かりません。

<label for="determinate-progress">アップロード</label>
<progress id="determinate-progress" max="100" value="65">65%</progress>

<label for="indeterminate-progress">サーバーの応答を待機中</label>
<progress id="indeterminate-progress">処理中</progress>

value="0"は確定状態の現在値0です。value属性を省略した状態とは異なります。

value・maxの解決

max属性はタスク全体の量を表します。指定がない場合の最大値は1です。値の単位は仕様で固定されていないため、アプリケーション内で一貫した単位を選びます。

  • maxは有効な浮動小数点数で、0より大きい必要があります。無効または0以下の場合は最大値1として扱われます。
  • valueがある場合、現在値は有効な浮動小数点数として解釈されます。無効な値や0以下の値は現在値0として扱われます。
  • 現在値が最大値を超える場合、進捗の現在値は最大値に制限されます。
  • valueがない場合は不定状態で、positionは-1を返します。

progressにはmin属性はありません。常に下限は0であり、範囲内の測定値に下限・上限・低い値・高い値の意味を持たせるmeterとは処理モデルが異なります。

フォールバックテキストとラベル

progressの子孫テキストは、古いユーザーエージェント向けに現在値や最大値を伝えるフォールバックとして記述できます。ただし、その文字列だけを要素の名前として扱うのではなく、何の進捗かをlabelや適切なARIA labelingで明示します。

<label for="file-progress">レポートのアップロード進捗</label>
<progress id="file-progress" max="100" value="70">70%</progress>

ページの一部を読み込んでいる場合は、進捗表示をaria-describedbyで説明対象の領域と関係付け、更新中の領域にaria-busyを使う設計も別途検討します。要素の意味、ブラウザーのAccessibility Tree、支援技術の通知は同一視しません。

DOM Interface

API意味境界
value現在の進捗値不定状態ではgetterが0を返し、setterで確定状態へ変化する場合がある
max最大値。既定値は10以下や不正な値は既定の最大値として解決される
position確定状態では現在値 / 最大値。不定状態では-1進捗の割合を読むためのreadonly surface
labels関連するlabelのNodeListlabelable要素としての名前付けを確認する入口

Fact / Evidence(主張 / 根拠)

仕様上の進捗モデル、属性の解決、content model、DOM API、アクセシビリティマッピングを、主張・条件・根拠位置に分けて記録します。ブラウザーの実測は下のImplementation Evidenceに分離します。

主要Factと根拠位置
種別Fact / 主張条件・範囲状態根拠
SPECprogressはタスクの完了進捗を表します。確定状態では0から最大値までの完了量、不定状態では残量不明の進行中タスク。確認済みHTML Standard: the progress element
SPECvalue属性があるかどうかで、確定状態と不定状態が区別されます。valueなしは不定状態、valueありは現在値と最大値を持つ確定状態。確認済みHTML Standard: determinate and indeterminate progress
SPECmaxの既定値は1で、valueは0以上かつ最大値以下の現在値として解決されます。無効な浮動小数点値、0以下のmax、最大値を超えるvalueの解決。確認済みHTML Standard: value and max processing
SPECprogressはFlow、Phrasing、Labelable、Palpable contentに属します。Phrasing contentが期待される場所で使用し、子孫にprogressを置かない。確認済みHTML Standard: categories and content model
SPECHTMLProgressElementvaluemax、readonlyのpositionlabelsを公開します。不定状態のposition、IDL属性とcontent attributeの反映を含むDOM API。確認済みHTML Standard: HTMLProgressElement
AAMprogressprogressbar roleに対応し、確定状態では最大値・最小値0・現在値をアクセシビリティAPIへ反映します。HTML-AAMのelement role mapping。実際のブラウザー・platform API・支援技術の結果は別途観測する。仕様確認済みHTML-AAM: progress

Evidence

  1. HTML Standard: The progress element — meaning、categories、attributes、確定・不定状態、value/max処理、DOM interface
  2. HTML Accessibility API Mappings: progress — progressbar role、確定状態のvalue properties、label mapping
  3. Web Platform Tests: HTML forms — progress elementの仕様テストを特定する入口

Implementation Evidence

仕様上の主張とは別に、ブラウザー実装、WPT、アクセシビリティツリーの観測を記録します。専用のprogress-v1 fixtureはまだ実行していないため、未実行項目を確認済みとは扱いません。

Fixture候補: progress-v1では、確定・不定状態の切替、valuemaxの境界値・不正値、positionlabels、fallback text、Accessibility Treeのvalue propertiesを再現する。

progress要素の実装Evidence登録表
種別再現確認の範囲記録する条件状態
IMPL確定・不定状態、value/maxの境界、属性・IDL反映、position、labels、fallback textブラウザー名・バージョン、OS、確認日、progress-v1 fixture、各項目の結果を登録するPending / 未実施
WPTprogress element、value/max parsing、indeterminate、DOM APIに対応するテスト選定ファイル、実行環境、pass/fail、未実行理由を登録するPending / 未実施
AAMprogressbar role、labelによるaccessible name、確定状態のmin/max/now、不定状態の公開ブラウザーAccessibility Tree、platform API、支援技術、他ブラウザーの観測を分けて登録するPending / 未実施

単一環境でのブラウザー観測を、すべてのブラウザー・platform API・支援技術に共通する結果として登録しません。

Coverage / Open Issues

  • 確認済み意味、Categories、Context、Content model、tag omission、content attributes
  • 確認済み確定・不定状態、valuemaxの仕様上の解決、meteroutputとの意味の境界
  • 確認済みHTMLProgressElementの主要APIとHTML-AAMのprogressbar mappingの入口
  • 未完了Chrome、Firefox、Safariでの属性・IDL・表示・確定/不定切替の実装比較
  • 未完了WPTの個別テスト実行結果、境界値・不正値・動的変更のブラウザー差
  • 未完了HTML-AAMの全mapping、platform API、支援技術の読み上げ、動的更新とaria-busy/aria-describedbyの相互作用

このページは初期Coverageです。仕様上の入口と根拠を整理したものであり、すべてのブラウザー、platform API、支援技術で同じ結果になることや、progress要素全体の検証完了を主張しません。

Related surface

初心者向けの進捗表示、確定・不定状態、meteroutputとの違いはYugienのprogress要素ページを参照してください。ラベルとの関係はlabel要素、計算結果との違いはoutput要素でも確認できます。