[1]
[[HTML]] の [DFN[[CODE(HTMLe)@en[output]] [[要素]]]]は、
[[DOM]] 的には[[フォーム・制御子]]である
[CODE(HTMLe)@en[[[span]]]] [[要素]]のようなものです。
[SRC@en[WF2 2.13]]
[[フォーム]]に[[利用者]]が入力した値から算出した値
(例えば[[電子商取引]]の [[Webサイト]]で[[利用者]]が選択した商品の見積り額)
を挿入する場所として使うことが想定されています。

[2] 
:状態:[[WHATWG]] [[WD]]
:[[名前空間URI]]:[CODE(URI)@en[[[http://www.w3.org/1999/xhtml]]]]
:[[要素型名]]:[CODE(HTMLe)@en[[[output]]]]
([Q@en[[[output]]]] ([Q[[[出力]]]]) より)
:文脈:
:[[内容モデル]]:[[行内内容]] (>>5)
:[[開始タグ]]:
:[[終了タグ]]:
:[[属性]]:
[[共通属性]] ([[HTML 4]] [CODE(SGML)@en[%[[attrs]];]])
,属性名,属性値,既定値,説明,状態,出典
,[CODE(HTMLa)@en[[[for]]]],,,,[[WHATWG]] [[WD]],[WF2]
,[CODE(HTMLa)@en[[[form]]]],[CODE(XML)@en[[[IDREFS]]]],(文脈依存),[[フォーム]],[[WHATWG]] [[WD]],[WF2]
,[CODE(HTMLa)@en[[[name]]]],,,,[[WHATWG]] [[WD]],[WF2]
,[CODE(HTMLa)@en[[[onchange]]]],,,,[[WHATWG]] [[WD]],[WF2]
,[CODE(HTMLa)@en[[[onformchange]]]],,,,[[WHATWG]] [[WD]],[WF2]
,[CODE(HTMLa)@en[[[onforminput]]]],,,,[[WHATWG]] [[WD]],[WF2]

[3]
仕様書:
- [[Web Forms 2.0]]
-- [CSECTION@en[2.13. The [CODE(HTMLe)@en[[[output]]]] element]]
<IW:WF2:"#the-output">
-- [CSECTION@en[2.18. Handling unexpected elements and values]]
<IW:WF2:"#handling">

* 状態

[12] [CODE(DOMi)@en[HTMLElement]] の状態に加えて、
[FIG(list members)[
: [F[[CODE(DOMa)@en[htmlFor]]]] : [CODE(DOMi)@en[DOMTokenList]]
]FIG]


* 内容

[5] [CODE(HTMLe)@en[[[span]]]] 同様、
任意の[[行内内容]]が認められます。
[SRC@en[WF2 2.13]]

[11] '''[CODE(DOMe)@en[change]] 事象'''

→ [CODE(DOMa)@en[[[value]>>49]]]

[[#comment]]

** フォーム

[4] '''現在値'''

[[内容]]が[[現在値]]です。 [SRC@en[WF2 2.13]]

[6] [[現在値]]は、 [CODE(DOMa)@en[[[value]]]]
[[DOM属性]]により読み書きできます。
[SRC@en[WF2 2.13]]

[7] '''初期値'''

[[初期値]]は、 [CODE(DOMa)@en[[[defaultValue]]]]
[[DOM属性]]の値です。
[SRC@en[WF2 2.13]]

[8] '''成功'''

[CODE(HTMLe)@en[[[output]]]] [[要素]]が[[成功]]することはありません。
[SRC@en[WF2 2.13]]

[9] '''再設定'''

[[フォーム]]を[[再設定]]すると、 [CODE(HTMLe)@en[[[output]]]]
[[要素]]も、 [CODE(DOMa)@en[[[defaultValue]]]]
[[DOM属性]]を用いて[[再設定]]されます。
[SRC@en[WF2 2.13]]

;; [CODE(DOMa)@en[[[defaultValue]]]]
は [CODE(DOM)@en[[[DOMString]]]] なので、
元々[[子要素]]があったとしても、
[[再設定]]すると[[要素]]の構造は消えてしまいます。

[[#comment]]

** 関連

[49] [SRC@en[WF2 2.13]]
- [CODE(HTMLe)@en[[[output]]]] を使うべきなのは次の場合です。
-- [[利用者]]が直接値をいじることがない場合。
-- 値が他の値から得られる場合 (例えば[[合計]])。
-- 値が他の場所で編集できるものと同じ場合
(例えば[[サイト]]の設定頁で変更できる [[FAX番号]]の場合)。
- [CODE(HTMLa)@en[[[readonly]]]] を使うべきなのは、
[[利用者]]が変更するべきではないが、
[[鯖]]に[[提出]]する必要がある
(例えば[[データベース]]の[[記録]]編集時の[[識別子]]の) 
[[フォーム制御子]]です。
- [CODE(HTMLa)@en[[[disabled]]]] を使うべきなのは、
[[利用者]]が変更することができず、
[[提出]]もしない[[フォーム制御子]]です。

[[#comment]]

** 例

[10] [SRC@en[WF2 2.13]]
[PRE(HTML example code)[
<form>
 <p>
  <input name="a" type="number" step="any" value="0"> *
  <input name="b" type="number" step="any" value="0"> =
  <output name="result" onforminput="value = a.value * b.value">0</output>
 </p>
</form>
]PRE]

[[レンダリング]]例
[PRE(aafig)[
+--------+-+   +--------+-+
|      0 |:| * |      0 |:| = 0
+--------+-+   +--------+-+
]PRE]

[[利用者]]がいずれかの入力欄の[[数]]を変更すると、
2つの[[数]]の[[積]]が [CODE(charname)@en[[[EQUAL SIGN]]]]
の右側の [CODE(HTMLe)@en[[[output]]]] [[要素]]内に現れます。

* 歴史

** WF2

[23] [CITE@en-GB-hixie[Proposed XHTML Module: XForms Basic]], [TIME[2003-12-08T11:59:41.000Z]], [TIME[2024-09-01T03:49:05.382Z]] <http://www.hixie.ch/specs/html/forms/xforms-basic-1#the-output>



[FIG(data)[ [216] [[HTML要素概説]]

:[F[要素名]]:[CODE[output]]
:日付:[TIME[2003-12-04]]
:説明:
[TIME[2003-12-04]]、
[CITE[XForms Basic]]
に
[CODE[output]]
が追加された。
現行仕様である。
:出典:
[REFS[

-
[DFN[WF2-20031204]]:
[CITE@en-GB-hixie[Proposed XHTML Module: XForms Basic]], 
[DATA(.author)[[[Opera Software]]]],
[[Ian Hickson]],
[DATA(.status)[[[Working Draft]]]],
[TIME(.published)[4 December 2003][2003-12-04]],
[TIME[2003-12-08T11:59:41.000Z]], [TIME[2024-09-01T03:49:05.382Z]] <http://www.hixie.ch/specs/html/forms/xforms-basic-1>

]REFS]

]FIG]


** HTML5


[71] 
[CITE@en['''['''''']''' (0) WF2: <output> element summary.]], [[Hixie]], [TIME[2008-09-05 07:48:01 +09:00]], [TIME[2024-09-04T13:14:22.000Z]] <https://github.com/whatwg/html/commit/952f47dfb772ac6aeea700263a64e36467fd5d79>

[FIG(data)[ [70] [[HTML要素概説]]

:[F[要素名]]:[CODE[output]]
:日付:[TIME[2008-09-04]]
:説明:
[TIME[2008-09-04]]、
[CITE[HTML5]]
に
[CODE[output]]
が追加された。
:出典:
[REFS[

-
[CITE[HTML5 r2154]],
[DATA(.author)[[[Hixie]]]], 
[TIME(.published)[2008-09-05 07:48:01 +09:00]], [TIME[2024-09-04T13:14:22.000Z]] <https://github.com/whatwg/html/commit/952f47dfb772ac6aeea700263a64e36467fd5d79>

]REFS]

]FIG]




[50] [CITE@en[Web Applications 1.0 r7356 Try to be a little looser in <output>'s definition.]]
( ([TIME[2012-09-16 06:51:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=7355&to=7356>

[51] [CITE[''''''[''''''whatwg'''''']'''''' OUTPUT tag: clarify purpose in spec?]]
( ([TIME[2014-01-22 00:54:48 +09:00]] 版))
<http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2014-January/041901.html>

[52] [CITE@en[Web Applications 1.0 r8417  Try to clarify <output> and <samp> based on discussions on the WHATWG list]]
( ([TIME[2014-01-22 09:28:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=8416&to=8417>

[53] [CITE@en[Web Applications 1.0 r4531       Make <progress>, <meter>, and <output> labelable with <label>.]]
( ([TIME[2010-01-07 12:40:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=4530&to=4531>

[54] [CITE[Form Controls]]
( ([TIME[2001-06-07 00:45:59 +09:00]] 版))
<http://www.w3.org/TR/2001/WD-xforms-20010608/slice7.html#ui-output>

[55] [CITE@en[Web Applications 1.0 r8839 Fix the attribute index's mention of <track>; mention that <output> doesn't submit.]]
( ([TIME[2014-10-24 02:48:00 +09:00]] 版))
<https://html5.org/r/8839>

[56] [CITE@en[''''''[''''''whatwg'''''']'''''' Markup-related feedback]]
( ([[Ian Hickson]] 著, [TIME[2014-10-28 05:41:30 +09:00]] 版))
<http://lists.w3.org/Archives/Public/public-whatwg-archive/2014Oct/0239.html>

[13] [CITE@en[dfn what it means for elements to be “referenced”]]
([[sideshowbarker]]著, [TIME[2017-07-15 19:05:30 +09:00]])
<https://github.com/whatwg/html/commit/d0872abf29373f284c93434875e2e30d12602081>

[14] [CITE@en[Fix example of output element to use ids instead of names]]
([[frigus02]]著, [TIME[2018-01-03 04:49:49 +09:00]])
<https://github.com/whatwg/html/commit/58a8817ee90dff89c9b751bc693764dc0a83c0ce>

[15] [CITE@en[Example for <output> uses `name` instead of `id` when referring to `for` elements · Issue #3312 · whatwg/html]]
([TIME[2018-01-03 17:59:05 +09:00]])
<https://github.com/whatwg/html/issues/3312>

[16] [CITE@en[Fix example of output element to use ids instead of names by frigus02 · Pull Request #3313 · whatwg/html]]
([TIME[2018-01-03 18:00:58 +09:00]])
<https://github.com/whatwg/html/pull/3313>

[17] [CITE@en[Fix form inheritance behavior for autocapitalize]]
([[rlanday]]著, [TIME[2018-01-25 08:58:12 +09:00]])
<https://github.com/whatwg/html/commit/b7c21b1b56d77215d3d85ae14a072c090dbe6266>

[18] [CITE@en[leverage CORE mappings / issue #119]]
([[jasonkiss]]著, [TIME[2018-02-07 07:29:32 +09:00]])
<https://github.com/w3c/html-aam/commit/a1a661d9874e2674cd99b7dda1cf6962dc91df1b>

[19] [CITE@en[leverage CORE mappings / issue #119]]
([[jasonkiss]]著, [TIME[2018-02-07 07:29:32 +09:00]])
<https://github.com/w3c/html-aam/commit/a1a661d9874e2674cd99b7dda1cf6962dc91df1b>

[20] [CITE@en[Rewrite output element to not use non-existing observers]]
([[annevk]]著, [TIME[2019-04-03 20:17:00 +09:00]])
<https://github.com/whatwg/html/commit/3419d36fba06332547b7a05b8e2ab6c0b1fae64b>

[21] [CITE@en[The output element's default value · Issue #4163 · whatwg/html]]
([TIME[2019-09-10 09:48:36 +09:00]])
<https://github.com/whatwg/html/issues/4163>

[22] [CITE@en[Rewrite output element to not use non-existing observers by annevk · Pull Request #4447 · whatwg/html]]
([TIME[2019-09-10 09:50:15 +09:00]])
<https://github.com/whatwg/html/pull/4447>