IEの仕様変更とJavaScriptによる(X)HTML要素の書き出しについて
著
少し前のことになりますが、MicrosoftからWindows XP SP2とWindows Server 2003 SP1のInternet Explorer 6向けに更新プログラムが提供されています。これによってActiveXコントロールを使用するWebページの処理方法が変更された件、あまり騒がれていないように思うのですが、僕の気のせいでしょうか。それとも自分のアンテナに引っかかっていないだけ?
この変更により、ユーザがActiveXコントロールを有効化しない限り、ActiveXコントロールを用いた処理は行われなくなります。より具体的には、(X)HTML文書内にappletやembed、object要素としてマークアップされたコンテンツが自動的に表示/再生されなくなり、かわりにその可否を問うダイアログウィンドウが開きます。で、表示/再生をいちいち承諾する手間をユーザに強いることを好まない(=上記の変更が適用されたIEであってもコンテンツを自動的に表示/再生させたい)制作者向けに、Adobeはブラウザの更新に備えたアクティブコンテンツ使用Webサイトの準備という文書を公開、JavaScriptで当該要素を書き出す方法を「回避策」と称し紹介しています。
Flashコンテンツがモロに影響を被るだけに、この動きは当然とも取れますが、制作者が脊髄反射的にこの手法にスイッチしてしまうとなると、ちょっとマズイのではないかと思います。IEのユーザシェアからして、その存在を無視することは(商用サイトであれば尚更)難しく、むしろ特別扱いもやむを得ない状況は往々にしてありますが……しかしMicrosoft社の仕様変更「だけ」を理由に、本来文書中にマークアップすべきものをJavaScriptで書き出すようになるというのは、やっぱり微妙な気が。applet/embed/object要素をnoscript要素内容としてマークアップしさえすれば無問題、とも感じませんし。最終的にそのような手法を採用するにせよ、判断には慎重を要すべきではないかと思いました。