standby要素の謎

XHTML 2.0のドラフトで導入を検討されている要素の一つとして standby要素があるのだけれども、この要素の定義については甚だ疑問で、個人的にはDTDに含めて欲しくはない。standby要素は、オブジェクトモジュールに含まれる、オブジェクトのダウンロードが終了するまで一時的に表示しておく文章をマークアップするものらしい。



<object data="[]http://www.example.com/gifappli[]" type="image/gif">
<standby>Loading Elvis...</standby>
<param name="Init_values" value="./images/elvis.gif" valuetype="ref" />
Elvis lives!
</object>

このように記述すると、gifイメージの読みこみが完了するまでは "Loading Elvis..." を表示する事が期待される。
けれども、これから全てのタグを除き去ったらどうなるだろう。


Loading Elvis...
Elvis lives!
なんていう、随分と可笑しな文章が残ってしまう。
問題は、standby要素の内容がobject要素と等価な内容では無いという点にある。つまりはobjectの代替テキストとして用意するものならばむしろ推奨されるべきものだけれども、「Loading Elvis...」なんていう動的でなんらオブジェクトと関連性の無い文字列をマークアップの時点で勝手に挿入すべきではない。こういった仕事JavaScriptに任せておくのが一番。HTMLは、動かない。
これが属性ならばまだ救いはあっただろう。物理的なユーザエージェントの動作をHTMLで指定すべきではないとは思うけれども、単なる「付加情報」と捉えるならなんとか許せる範囲。HTML4には属性としてこれが含まれていたようだが、何故ここにきて要素になったのかは不明。テーブルのsummary要素とは、また話が別だと思うのだけれど。

現時点の仕様を見る限りでは、standby要素は物理的な動作しか指定しない、排除すべき“タグ”だ。