原文の最新版 が公開されたため、この日本語訳も古いものとなっています。日本語訳の最新版は、http://standards.mitsue.co.jp/resources/w3c/TR/html5-diff/ よりアクセスできます。
この文書「HTML 5 における HTML 4 からの変更点」は、W3C の HTML ワーキンググループ による「HTML 5 differences from HTML 4 (Working Draft 22 January 2008)」の日本語訳です。
規範的な文書は原文のみとなっています。この日本語訳は参考情報であり、正式な文書ではないことにご注意ください。また、翻訳において生じた誤りが含まれる可能性があります。
原文が勧告 (Recommendation) ではなく、策定途中の草案 (Working Draft) であることにご注意ください。
原文の最新版 は、この日本語訳が参照した版から更新されている可能性があります。また、この日本語訳自身も更新されている可能性があります。日本語訳の最新版は、W3C 仕様書 日本語訳一覧 から参照することができます。
Copyright © 2008 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark and document use rules apply.
HTML 5 は World Wide Web の中核となる言語、HTML の五度目にあたる改正版です。この文書「HTML 5 differences from HTML 4」は、HTML 5 における HTML 4 からの変更点、およびその論拠を説明します。なお、HTML 5 仕様は現在も活発に修正や変更が行われているため、この文書は正しい情報を提供できていない場合があります。疑わしい部分がある場合には、HTML 5 仕様書を参照するようにしてください。[HTML5]
この章は、この文書の公開時におけるステータスについて説明しています。このため、他の仕様がこの文書を上書きしている可能性があります。W3C による他の出版物およびこの技術レポートの最新版は W3C 技術レポートインデックス (http://www.w3.org/TR/) で探すことができます。
この文書は HTML Activity の HTML ワーキンググループ が作成した最初の公開草案 (First Public Working Draft) です。HTML ワーキンググループはこの文書を 部会ノート (Working Group Note) として、HTML 5 仕様 とともに公開する予定です。仕様書やこの文書へのコメントを寄せるのに適切なフォーラムは [email protected] です。公開アーカイブ も存在しています。
草案としての仕様書公開は、W3C メンバーによる支持を意味するものではありません。この文書は更新されたり他の文書と置き換えられたり、また破棄される可能性もある草稿段階の仕様書です。策定中ということを明記せずに、この文書を引用することは適当でありません。
この文書は 5 February 2004 W3C Patent Policy の下で活動するグループにより作成されました。W3C は 特許情報の開示に関する公開リスト を関連する団体と共に、その成果物とあわせて管理しています。リストには情報開示に関する説明もありますので、ご参照ください。特許について十分に知識のある人物が、当該仕様に関し Essential Claim(s) が認められると判断した場合は、W3C 特許方針の第6章 に従い情報を開示する必要があります。
HTML は 1990 年代初頭の誕生から今日まで発展を続けてきました。HTML における機能は仕様書で定義されることもあれば、ソフトウェアのリリースにより導入されることもありました。いくつかの点において、HTML の実装や作成者の慣習は互いに近づき、また仕様書や標準とも合致しました。しかし一方で、それらの間には相違も生まれ続けています。
HTML 4 は 1997 年に W3C 勧告となりました。今日までその仕様書は、HTML の核となる機能を大まかに説明するガイドとして利用されています。しかし、HTML 仕様書は実装どうしの相互運用性や、莫大な数に達した Web 上の HTML 文書をどう扱うかという重要な問題に対し、十分な情報を提供していませんでした。また、同じことがHTML 4 を XML でシリアライズした XHTML1、そして HTML と XHTML に JavaScript API を定義する DOM Level 2 HTML に対しても起こってしまいました。[HTML4] [XHTML1] [DOM2HTML]
HTML 5 仕様の草案は、2004 年に始まった現在の HTML 実装と、Web に公開されている HTML 文書に対し行った調査を反映し、次の要件を掲げています。
HTML 5 は未だ草稿段階です。HTML 5 仕様書および、この文書中の HTML 5 に関する項目は、現在も HTML ワーキンググループや WHATWG メーリングリストで検討中です。網羅的ではありませんが、未だ解決されていない問題について次に記します。
longdesc
、alt
、summary
、headers
など、アクセシビリティおよびメディア非依存な機能の詳細。
style
属性。
すでに Web 上に公開されている HTML 文書への扱いに対して、HTML 5 はユーザーエージェントが後方互換を取るようにと定義しています。
HTML 5 では、オーサリング言語を製作者のためシンプルにした結果、表象的な要素をはじめとするいくつかの要素や属性が含まれていません。CSS の使用が推奨されるこれらの要素や属性に関しては、後のセクションに詳しい説明があります。
一方で、ユーザーエージェントはこれらの古い要素をサポートし続けなければなりません。このため、仕様書は製作者に対する要件とユーザーエージェントの要件を明確に分けています。たとえば、製作者は isindex
や plaintext
要素を使用することはできませんが、ユーザーエージェントはこれらの要素が過去にどう振舞っていたかを考慮し、それに互換性を持つ形でサポートする必要があります。
HTML 5 は製作者とユーザーエージェントに別々の適合性要件を設けたことにより、「非推奨 (deprecated)」という扱いを行う必要がなくなりました。
HTML 5 仕様は、少なくともふたつの完全な実装が登場するまでは完成したとみなされません。これは過去の HTML とは異なるアプローチです。この開発モデルを採用する目的として、開発者やデザイナーに仕様が完成した時点で実装可能、使用可能であることを保証したいというものがあります。
HTML 5 言語は、Web に公開されている HTML 4 や XHTML1 と互換性のある「カスタム」HTML 構文を採用しています。しかしこの構文は HTML 4 における、たとえば <em/content/
などの難解な SGML の機能とは互換性がありません。この「カスタム」構文を使用する文書は text/html
MIME タイプで供給される必要があります。
HTML 5 はまた、この構文にエラーハンドリングを含む詳細なパース処理規則を定義しています。これらの規則は、よくある実装と大部分において互換性を持つよう設計されています。ユーザーエージェントは text/html
MIME タイプを持つリソースに対し、これらの規則に従いパース処理を行います。「カスタム」HTML 構文に適合する HTML 文書の例は、次のようなものになります。
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>Example document</title> </head> <body> <p>Example paragraph</p> </body> </html>
HTML 5 で使用できるもうひとつの構文は XML です。この構文は XHTML1 文書およびその実装と互換性をもちます。XML 構文を使用する文書は XML の MIME 型により提供される必要があります。また、XML 仕様にて述べられた規則に基づき、要素は http://www.w3.org/1999/xhtml
名前空間に属する必要があります。 [XML]
次の例は HTML 5 文書の XML 構文に適合する文書の例です。この XML 文書は XML の MIME 型、すなわち application/xhtml+xml
または application/xml
を持たなければならないことに注意してください。
<?xml version="1.0" encoding="UTF-8"?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Example document</title> </head> <body> <p>Example paragraph</p> </body> </html>
HTML 5 の HTML 構文において、作成者は次に示す三つの方法から、文書の文字符号化方式を指定できます。
Content-Type
ヘッダなど、トランスポートレベルでの指定。
meta
要素の charset
属性による指定。この要素は head
要素の一番初めに宣言します。たとえば <meta charset="UTF-8">
は、UTF-8 符号化方式を指定する場合に用いることができます。これは今まで使われていた <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
という指定方法を置き換えるものです。
XML 構文では、作成者は XML 仕様の規定に基づき文字符号化方式を指定する必要があります。
DOCTYPE
HTML 5 の HTML 構文では、ブラウザがページを標準モードで描画することを保証するため、DOCTYPE
が必須となります。DOCTYPE
はこのほかに何も目的を持っていないため、XML 構文での記述は任意となります。これは、XML の MIME 型で供給される文書は常に標準モードで扱われるためです。[DOCTYPE]
DOCTYPE
宣言は <!DOCTYPE html>
となります。HTML 構文では大文字と小文字を区別しません。以前の HTML は SGML であり、DTD を参照する必要があったため DOCTYPE
は長いものとなっていました。HTML 5 はこれに当てはまらず、DOCTYPE
は HTML 構文において標準モードを有効にする手段として必要となっています。なお、ブラウザは現段階において既に、<!DOCTYPE html>
を標準モードのトリガーとして解釈しています。
このセクションは、HTML 4 とHTML 5 の違いをより明確に説明するため、いくつかの小セクションに別れています。
文書のより良い構造化のため、次の要素が新しく追加されました。
section
要素は文書やアプリケーションにおける一般的なセクションを表します。h1
-h6
と共に用いることで、文書構造を示唆することができます。
article
要素は blog エントリや新聞記事など、文書の中で独立した一片の内容を表します。
aside
要素はページのほかの部分とわずかにのみ関係する一片の内容を表します。
header
要素はヘッダにあたるセクションを表します。
footer
要素はフッタにあたるセクションを表します。フッタには作者に関する情報、著作権に関する情報などを含むことができます。
nav
要素はナビゲーションを目的とした、一つのセクションを表します。
dialog
要素は、次のようなマークアップで会話文を表現します。
<dialog>
<dt> Costello
<dd> Look, you gotta first baseman?
<dt> Abbott
<dd> Certainly.
<dt> Costello
<dd> Who's playing first?
<dt> Abbott
<dd> That's right.
<dt> Costello
<dd> When you pay off the first baseman every month, who gets the money?
<dt> Abbott
<dd> Every dollar of it.
</dialog>
figure
要素は画像やビデオなどの埋め込み内容に、説明文やキャプションを付加するために用いられます。
<figure>
<video src=ogg>…</video>
<legend>Example</legend>
</figure>
他にも、新しい要素が追加されています。
マルチメディアのための audio
および video
要素が導入されました。どちらの要素にも製作者がスクリプトを用い、独自のユーザーインターフェースを作成できるような API が提供されます。もちろん、ユーザーエージェントによるインターフェースの提供を働きかけるための仕組みも存在します。これらの要素とsource
要素を共に用いることで、異なるタイプの多重ストリームを記すことができます。
embed
要素はプラグイン用のコンテンツに用いられます。
m
要素は印づけされた一連のテキストを表します。
meter
要素はディスク容量などの測定値を表します。
time
要素は日付や時刻などの時間情報を表します。
canvas
要素はグラフ、ゲームなど動的に描画され更新されるビットマップグラフィックスに用いられます。
command
要素はユーザーが実行するコマンドを表します。
datagrid
要素はインタラクティブなツリーリスト、または表データを表します。
details
要素はユーザーがオンデマンドに得る、付加的な情報やコントロールを表します。
datalist
要素と input
要素の新しい list
属性を組み合わせ、コンボボックスを作成することができます。
<input list=browsers>
<datalist id=browsers>
<option value="Safari">
<option value="Internet Explorer">
<option value="Opera">
<option value="Firefox">
</datalist>
datatemplate
、rule
、そして nest
要素は、HTML にテンプレート機構を提供します。
event-source
要素はサーバーが送信したイベントを「キャッチ」する際に用いられます。
output
要素はスクリプトによる計算結果など、何らかの出力結果を表します。
progress
要素はダウンロードや負荷の高い処理など、実行中のタスクを表します。
input
要素の type
属性は、次に記す新たな値をサポートします。
datetime
datetime-local
date
month
week
time
number
range
email
url
これらの属性値は、ユーザーエージェントがユーザーインターフェースを提供し、決められたフォーマットでサーバーにデータを送信させることができるように定義されました。これらはたとえばカレンダーにおける日付選択のインターフェースや、ユーザーのアドレスブックと統合した機能に役立ちます。また、これらの属性値により、ユーザーがサーバーにデータを送信する前にフォームの内容をチェックすることができます。このため、フィードバックを待つ時間の短縮を実現し、ユーザーにより良いエクスペリエンスを提供することができます。
HTML 5 は HTML 4 で定義されていた要素に、新しい属性を導入しました。
a
および area
要素は media
属性を持つことができるようになりました。これは link
要素との一貫性を保持するためで。この属性は、純粋に助言的な情報です。
a
および area
属性は新しい属性 ping
を持つことができます。属性値はスペース区切りの URI で、ハイパーリンクをたどるときに ping されなければならないリソースを指定します。現在ユーザートラッキングはリダイレクト処理により行われていますが、この属性によりユーザーエージェントはユーザーに対し、どの URI が ping されるのかを教えることができ、かつプライバシーを意識するユーザーに対し、その機能を無効にする仕組みを用意することができます。
area
要素は、一貫性保持のため hreflang
および rel
属性を持つことができるようになりました。
base
要素は a
要素との一貫性保持のため、また広くサポートされていることから、target
属性を持つことができるようになりました。また、a
および area
要素の target
属性は非推奨ではなくなりました。これは iframe
など、Web アプリケーションにおいて役立つものであるからです。
li
要素の value
属性は表象的ではないことから非推奨ではなくなりました。ol
要素の start
属性も同様に非推奨ではなくなりました。
meta
要素は charset
を持つことができるようになりました。これはすでに広くサポートされており、また文書の 文字符号化方式 を指定する、より素敵な方法です。
input
、select
、textarea
、そして button
要素に autofocus
属性を指定できるようになりました (ただし、type
属性に hidden
が指定された input
要素には指定できません)。この属性はページがロードされたときに特定のフォームコントロールにフォーカスを与える仕組みを提供します。気に入らなければユーザーが自動フォーカス機能をオフにできることも含め、この属性はユーザーエクスペリエンスを向上させるでしょう。
input
、output
、select
、textarea
、button
、そして fieldset
要素に新たに導入された form
属性により、ひとつ以上のフォームにコントロールを指定することができるようになりました。
input
、button
、そして form
要素は replace
属性を持つことができるようになりました。この属性は、フォームが送信された後の処理に影響します。
datalist
要素と同様に、form
、select
要素は data
属性を持てるようになりました。この属性により、form
要素やフォームコントロールでは自動的なフォーム内容の記入が、また select
や datalist
要素ではサーバーからデータの自動読み込みが可能となります。
input
および textarea
要素に required
属性を指定できるようになりました (ただし、type
属性に hidden
、image
、そして submit
など何らかのボタンタイプが指定された input
要素には指定できません)。この属性により、ユーザーはどのフォームに記入することでフォームを送信できるかを知ることができるようになります。
input
および textarea
要素は新しい属性 inputmode
を持つことができるようになりました。この属性により、ユーザーはどのような入力が求められるのかをヒントとして知ることができるようになります。
disabled
属性により、ひとつの fieldset
要素全体を無効にすることができるようになりました。この機能は今まで可能ではありませんでした。
input
要素は次に挙げる新しい属性により、さまざまな制約を加えることができるようになりました。autocomplete
、min
、max
、pattern
、そして step
がその属性です。また、先に述べたように、datalist
および select
要素と併用する list
属性も存在します。
input
および button
要素は新しい属性 template
を持つことができるようになりました。この属性により、繰り返しテンプレートを利用することができるようになります。
menu
要素は三つの新しい属性 type
、label
、そして autosubmit
を導入しました。これらの属性により、要素を典型的なユーザーインターフェースで見られるようなメニューに変形させることができます。またグローバル属性 contextmenu
と併用することで、コンテキストメニューの提供も行うことができるようになりました。
style
要素は新しい scoped
属性を持つことができるようになりました。これによりスコープを絞ったスタイルシートの指定が可能となります。このような style
要素によるスタイル指定は、ローカルツリーにのみ適用されます。
script
要素は新しい async
属性を持つことができるようになりました。この属性はスクリプトのローディングおよび実行に影響を与えます。
html
要素は manifest
と呼ばれる新しい属性を持つことができるようになりました。この属性は、オフライン Web アプリケーションのための API と強調し、アプリケーションキャッシュのマニフェストを指定します。
HTML 4 で定義されていたいくつかの属性は、すべての要素に適用できるようになりました。これらはグローバル属性と呼ばれ、class
、dir
、id
、lang
、tabindex
、そして title
属性が当てはまります。
また、新しいグローバル属性も導入されました。
contenteditable
属性は要素が編集可能領域であることを示す属性です。ユーザーは内容を変更し、マークアップを操作することができます。
contextmenu
属性は製作者によって提供されるコンテキストメニューを指定します。
draggable
属性は新しく定義されたドラッグ & ドロップ API と組み合わせて利用します。
irrelevant
属性は、現在またはこの先意味を成さない要素を表します。
次に記すものは繰り返しモデルにて利用される属性です。これらはグローバル属性であり、すべての HTML 要素に用いることが出来ます。また、http://www.w3.org/1999/xhtml
名前空間に属することで、他の名前空間に属する要素にも用いることができます。
repeat
repeat-start
repeat-min
repeat-max
HTML 5 はまた、HTML 4 で定義されていた onevent-name
という形をとるすべてのイベントハンドラ属性をグローバルなものに変更しました。また、新たなイベントの定義と共に、それを処理するイベントハンドラ属性も設けています。たとえば、新しい event-source
要素およびクロスドキュメントなメッセージ API と共に用いる、onmessage
属性などが当てはまります。
次に挙げる要素は HTML 5 で若干意味が変更されています。これらの変更は Web における使われ方を反映したもの、またはより便利なものとなるよう行われています。
href
属性のない a
要素は「リンクのプレースホルダ」を意味するようになりました。
address
要素は新しいセクショニングの概念により、スコープが狭まりました。
b
要素は文章において重要性を与えるわけではないものの、スタイル上表現が異なった部分を表すようになりました。たとえば概要におけるキーワードや、レビューにおける製品名など、タイポグラフィの慣習上よく太字にされるものが当てはまります。
hr
要素はパラグラフレベルでの主題変化を表すようになりました。
i
要素は文章において、異なった声やムード、または文章からオフセットとなっているものを表します。たとえば分類指示、専門用語、他言語での慣用句、考え、船舶名など、タイポグラフィの慣習上、斜体で表されるものが当てはまります。言語により幅広い用例が想定されます。
label
要素と結びつけられたコントロールに、ブラウザがフォーカスを移すことは行われなくなるでしょう。しかし、同様のコントロールがプラットフォームのユーザーインターフェースで標準的な動作となる場合は当てはまりません。
menu
要素は実際のメニューを表すよう再定義されました。
small
要素は脚注や法的条項などの細字部分を表すようになりました。
strong
要素は文章の一部を部分的に強調するものではなく、文章の重要度を示すものとなりました。
このセクションにある要素は、製作者が使用することのできない要素です。しかし、ユーザーエージェントはそれらをサポートし続けなければならないでしょう。また、HTML 5はそのうち、それらの要素をどうサポートすべきかをまとめた描画に関するセクションを設けるでしょう (たとえば、isindex
要素はすでにパーサがサポートしています)。
次に挙げる要素は HTML 5 に存在しません。なぜならこれらの要素は表象的であり、CSS にて扱われるべきだからです。
basefont
big
center
font
ただし WYSIWYG エディタにはユーザーインターフェースの制限があることから、この要素の使用が許可されます。
s
strike
tt
u
次に挙げる要素もまた HTML 5 に存在しません。これらの要素はユーザビリティやアクセシビリティに影響し、エンドユーザーに良くない結果をもたらすからです。
frame
frameset
noframes
次に挙げる要素は使用例が少ない、混乱の元になる、また他の要素で代用できることから含まれていません。
acronym
要素は多大なる混乱を引き起こしたことから削除されました。略語には abbr
要素を用いてください。
applet
要素は object
が支持されたことから廃止されました。
isindex
要素はフォームコントロールの代用により置き換えられます。
dir
要素は ul
要素が支持されたことから廃止されました。
最後に、noscript
要素は HTML 構文でのみ適合するようになりました。これはnoscript
要素の使用が HTML 構文にのみ依存するからであり、そのため XML 構文には含まれません。
HTML 4 で定義されていたいくつかの属性は HTML 5 に存在しません。それらの属性が互換性に関する理由からユーザーエージェントに大きな影響を及ぼす場合、どのように働けばよいのかを明らかにしなければなりません。
a
、area
、button
、input
、label
、legend
、そして textarea
要素の accesskey
属性。
link
および a
要素の rev
属性および charset
属性。
a
要素の shape
属性および coords
属性。
img
および iframe
要素の longdesc
属性。
link
要素の target
属性。
area
要素の nohref
属性。
head
要素の profile
属性。
html
要素の version
属性。
map
、img
、object
、form
、iframe
、そして a
要素の name
属性 (代わりに id
属性を使ってください)。
meta
要素の scheme
属性。
object
要素の archive
、classid
、codebase
、codetype
、declare
、および standby
属性。
param
要素の valuetype
属性および type
属性。
script
要素の charset
属性および language
属性。
table
要素の summary
属性。
td
および th
要素の headers
、axis
、そして abbr
属性。
td
要素の scope
属性。
これらの属性に加え、HTML 5 では HTML 4 で定義されていた表象的な属性がすべて削除されました。これらは CSS にて扱われるべきだからです。
caption
、iframe
、img
、input
、object
、legend
、table
、hr
、div
、h1
、h2
、h3
、h4
、h5
、h6
、p
、col
、colgroup
、tbody
、td
、tfoot
、th
、thead
、tr
、body
要素の align
属性。
body
要素の alink
、link
、text
、そして vlink
属性。
body
要素の background
属性。
table
、tr
、td
、th
、body
要素の bgcolor
属性。
table
、img
、そしてobject
要素の border
属性。
table
要素の cellpadding
属性および cellspacing
属性。
col
、colgroup
、tbody
、td
、tfoot
、th
、thead
、tr
要素の char
属性および charoff
属性。
br
要素の clear
属性。
dl
、menu
、ol
、ul
要素の compact
属性。
table
要素の frame
属性。
iframe
要素の frameborder
属性。
iframe
、td
、th
要素の height
属性。
img
、object
要素の hspace
属性及び vspace
属性。
iframe
要素の marginheight
属性および marginwidth
属性。
hr
要素の noshade
属性。
td
、th
要素の nowrap
属性。
table
要素の rules
属性。
iframe
要素の scrolling
属性。
hr
、input
、select
要素の size
属性。
font
以外のすべての要素における style
属性。
li
、ol
、ul
要素の type
属性。
col
、colgroup
、tbody
、td
、tfoot
、th
、thead
、tr
要素の valign
属性。
hr
、table
、td
、th
、col
、colgroup
、iframe
、pre
要素の width
属性。
HTML 5 は Web アプリケーションを製作する手助けとなるいくつかの API を提供します。これらの API は新しいアプリケーションのために導入された要素と共に使用できます。
canvas
要素にて使用可能な 2D 描画 API。
video
および audio
要素にてビデオやオーディオを再生する API。
contenteditable
と共に用いられる、編集 API。
draggable
属性と共に用いられる、ドラッグ & ドロップ API。
event-source
要素と共に用いられる、サーバー送信イベント。
HTMLDocument
の拡張HTML 5 は DOM Level 2 HTML の HTMLDocument
インターフェースをさまざまな方向に拡張しました。このインターフェースは Document
インターフェースをインプリメントするすべてのオブジェクトにインプリメントされます。このため、複合文書においても意味を持つことになります。また他にもいくつか注目すべきで新しいメンバがあります。
getElementsByClassName()
は class 名により要素を選択するものです。このメソッドは class
属性を持ついかなる内容、また SVG や MathML などの Document
オブジェクトで使用できるよう定義されました。
innerHTML
は HTML や XML を簡単にパースし、シリアライズできるものです。この属性は HTMLElement
のみに存在し、また標準にはなっていませんでした。
activeElement
および hasFocus
はどの要素に現在フォーカスが当たっているか、また Document
がフォーカスをそれぞれ行っているかを決定するものです。
getSelection()
は現在のセレクションを表すオブジェクトを返すものです。
designMode
および execCommand()
は主に文書の編集に使われるものです。
HTMLElement
の拡張HTML 5 では HTMLElement
インターフェースに対しても、いくつかの拡張が行われました。
getElementsByClassName()
は基本的に HTMLDocument
のものよりスコープが狭まったものです。
innerHTML
は今日の Web ブラウザでサポートされているものです。また、XML 文書として扱われる場合には、XML でも働くように定義されています。
classList
は className
のための便利なアクセサです。このアクセサが返すオブジェクトは、要素の class を操作するとき has()
、add()
、remove()
、そして toggle()
といったメソッドを開きます。a
、area
、また link
要素も、relList
という rel
属性に関して同様の処理を行うアクセサが定義されています。
編集者は、この文書の執筆に貢献してくれた Ben Millard、Cameron McCormack、Charles McCathieNevile、Dan Connolly、David Hasather、Henri Sivonen、James Graham、Maciej Stachowiak、Martijn Wargers、Martyn Haigh、Masataka Yakura、Michael Smith、Olivier Gendrin、Philip Taylor、Simon Pieters、そして長年 HTML 5 に関わり、Web の向上を行ってきた人に感謝しています。