HTML Living Standard/output
表示
output 要素
[編集]output
要素は、アプリケーションが行った計算の結果や、ユーザーの操作の結果を表示するために使用されます。この要素は、HTML5で導入されたフォーム関連要素の一つであり、計算結果や動的なデータを示すための便利な手段を提供します。
概要
[編集]output
要素は、フォーム内外で計算結果を表示するために使用されます。ユーザーがフォームに入力したデータに基づいて計算を行い、その結果をリアルタイムで表示する場合に特に便利です。また、for
属性を使用して、計算に関与する要素との関係を明確にすることができます。
この要素は、samp
要素と対比されます。samp
は過去に実行されたプログラムの出力を引用するための要素ですが、output
は動的に計算された結果を表現するためのものです。
属性
[編集]output
要素には、以下の属性があります:
for
: 計算に使用した入力要素のIDを指定します。複数の要素を指定する場合は、スペース区切りでIDを列挙します。form
: この要素を特定のフォーム要素に関連付けます。name
: フォーム内でこの要素を識別する名前を指定します。
グローバル属性
[編集]HTMLのすべての要素がサポートするグローバル属性も利用可能です。
DOM インターフェイス
[編集]output
要素は HTMLOutputElement
インターフェイスを実装しています。以下は主要なプロパティとメソッドです:
value
: 現在の値を取得または設定します。defaultValue
: 初期値を取得または設定します。type
: 常に"output"
を返します。htmlFor
:for
属性を反映します。form
: この要素に関連付けられたフォーム要素を返します。name
: フォーム内で使用される名前を取得または設定します。checkValidity()
: 現在の値が妥当であるかを確認します。reportValidity()
: 妥当性をチェックし、妥当でない場合にエラーメッセージを表示します。setCustomValidity(message)
: カスタムのエラーメッセージを設定します。
使用例
[編集]簡単な計算機の例
[編集]以下の例は、フォーム内で簡単な加算を行い、その結果をリアルタイムで表示します:
<form onsubmit="return false" oninput="o.value = a.valueAsNumber + b.valueAsNumber"> <input id="a" type="number" step="any"> + <input id="b" type="number" step="any"> = <output id="o" for="a b"></output> </form>
リモートサーバーからの計算結果を表示
[編集]以下の例では、WebSocketを使用してリモートサーバーから計算結果を受け取り、それを output
要素に表示します:
<output id="result"></output> <script> var primeSource = new WebSocket('ws://primes.example.net/'); primeSource.onmessage = function(event) { document.getElementById('result').value = event.data; }; </script>
アクセシビリティ
[編集]- ユーザーへの配慮: ラベルと関連付けることで、スクリーンリーダーを使用するユーザーにも計算結果を理解しやすくすることができます。
label
要素を適切に使用して、output
要素の意味を明示することが推奨されます。 - 実装者への配慮:
output
要素はフォーム関連APIと統合されており、効率的な実装が可能です。
注意点
[編集]output
要素の値はフォーム送信時には送信されません。そのため、フォームに関連付けた計算結果を送信したい場合は、JavaScriptを使用して結果を別のinput
要素にコピーする必要があります。- この要素はあくまで計算結果を表示するためのものであり、静的な出力には適していません。
結論
[編集]output
要素は、動的な計算結果を表示するための強力な手段を提供します。フォームやスクリプトと連携させることで、ユーザーの入力に応じたリアルタイムなフィードバックを実現することができます。HTML5のフォーム関連APIを活用し、ユーザー体験を向上させるために適切に使用しましょう。
関連項目
[編集]- HTML Living Standard/input
- HTML Living Standard/form
- HTML Living Standard/label
- HTML Living Standard/samp