RSS

Compatibility and IE8

13 6月

こんばんは。
本当は 6 月に入ったらすぐに UP するつもりでしたが、いろいろあって中旬になってしまいました。
もすこし、ペース上げないと Beta2 になってしまいますね。
( IEBlog の翻訳の記事は、そのうち Windows 開発統括部ブログへ移行しようと思っていますが、今は個人的にメモとして訳しているので当面はココで。。。)

さて、 今回の "Compatibility and IE8" はベータセミナーでも重きを置いて説明している互換性についての記事です。 Microsoft の Internet Explorer というブラウザは、開発においてこの互換性というものを常に重視しています。ただし、互換性を保つための方法や実装の仕方は、その時代の流れに沿わせたり、次に見えてくる Platform としての役割を考えた戦略的なものであったり、過去のバージョンからの修正による影響を受けたりと様々で、一見すると統一性がないように見えても、リリースされるバージョン単位では、おおよそ統一された仕組みであったりします。ただ、それが、すべての国に対してベストな実装の仕方であるのか?すべての Web アプリケーション/サイトやシナリオをカバーできているのか?変更の意図が伝わった状態でリリースされているか?というと、必ずしもそうでなく、しかしながらできる限りフォローすべく、ベータプログラムやセミナーを実施し、皆様のご意見やフィードバックを参考に市場に出す準備をしながら、開発を続けています。

ちなみに、この "Compatibility and IE8" の記事の後、先日 "Introducing IE=EmulateIE7" という記事が公開され、<meta> タグの扱いについて Update がありました。順序が異なりますが、この "Introducing IE=EmulateIE7" についてもすぐに訳したいと思います。

—————————————————
Monday, January 21, 2008 9:01 PM
Compatibility and IE8

Dean (Dean Hachamovitch : IE 開発のトップです。) の最近の Internet Explorer 8 and Acid2: A Milestone の投稿において、彼は我々の( IE のリリースにおける ) 責任について、相互運用性 ( interoperability: web ページが異なるブラウザ間でもうまく表示される ) と下位互換性 ( Web ページが異なるバージョンの IE でもうまく表示される ) を持って提供されることである、と強調しました。 我々はその両方を達成する必要があるので、IE8 をすでに IE6 や IE7 で今日動作している Web 上の数十億のページが表示されるようにするだけでなく、次の数十億のページを ( 相互運用が可能な方法で ) とても簡単に開発できるもの (プラットフォーム) としなければなりません。 Dean が掲げたテーマを継続し、これらのゴールを達成するために、我々が IE8 で話しているいくつかのステップについて述べたいと思います。

私は 10 年以上 IE チームに在籍していますが、私は我々が今まで 6 個の異なるメジャーバージョンの IE において、異なる方法を用いて "Don’t Break the Web ( Web を壊すな ) " というルールを適用してきたことを見てきました。 IE 6 において、互換性を保つために、我々は DOCTYPE スイッチ を使って異なる動作 "モード" を ( IE上で表現することを ) 可能にしました。 2001 年に IE 6 をリリースした時、"standards mode : 標準 モード " ( 私のチームは top 200 Web サイトにおいて同時に調査して、( Standards Mode は ) 1 % 未満という結果がでました。 ) の Web ページはかなり少数派で - DOCTYPE が何であるかを知っている人も、またそれら ( Standards モードの Web ページ ) を作成するツールもごくわずかでした。 標準に準拠した box model に変更するために、また開発者がオプトインによって新しい動作を使えるようにするために、IE6 で DOCTYPE スイッチを使えるようにしたのです。 (というのも) 我々が多くの問題を発生させることなく変更することができなかった IE5.x の標準に準拠していない独自解釈の CSS2 スペック向けに書かれた非常に多くのコンテンツをこれまで見てきたからです。

IE7 ではは、特に CSS において、我々は IE の標準準拠を促進させるための多くの変更を加えました。 我々はそれらの振る舞いの変更を IE の "標準モード" のみに制限し、そしてそれが過去において発生した互換性問題を限定するのに役立つと考えたからです。 しかし残念なことに、 また我々にとっては少し意外にも、 これは正しくない結果となり、多くのそれらの変更はすでに Web の一部となっているコンテンツに対して、IE を互換性のないものとしてしまいました。 それが IE7 のリリースが 2006 年の終わりになり、約半分の US のトップ 200 サイトが "標準モード" となるという結果になりました。 それらの多くのサイトは、彼らのコンテンツを製作するツールによって標準モードに "opted in" (切り替えられた) されました; それらの多くはおそらく正しいこと ( コーディング ) をしようとした誰かによって手作業でコーディングされ、そしてそれは彼らの HTML コード を W3C に沿った正当なものにしました。 しかしながら、新しいバージョンの IE をダウンロードした時には、それらのサイトの利用者は彼らに同じように動作することを期待しました。残念ながら、それはうまくいかなかったのですが。

ですが、多くの人々はこのポイントにおいて、なぜ Firefox、Safari または他のブラウザでは問題ではないのか?と疑問に思われます。それは、多くのサイトの開発者は IE6 における多くの欠点や完全なエラーなどに振り回されていたので、今は IE7 が IE6 と同じように動作することを期待しているからです。 Web 開発者が我々に期待するのは、例えば、 "標準モード" であっても、それが仕様に沿ってなかったとしても、box コンテンツのオーバーフロー方法のための我々のモデルを保持することを期待していました - なぜなら彼らはすでに彼らのコンテンツを我々のモデルで動作させるようにしていたからです。 多くの場合、IE でないブラウザ向けに提供していたのと同じコンテンツやスタイルシートを IE7 に提供したとしてもうまく動作していたのですが、彼らは IE 向けに "彼らのコンテンツを修正していた" のです。 (なので) サイトは動作せず、ユーザーは問題に直面していたのです。

要するに、そこには標準モードにおいても、IE は同じように動作し続けるだろうという予測があったのです。 すなわち IE6 の動作を見込まれたサイトだったので、我々が標準モードでの動作をより準拠するように変更しても、実際は DOCTYPE スイッチでは互換性を保つことができなかったというわけです。 我々は "Don’t Break the Web ( Web を壊すな) " は実際は "Don’t change what developers expect IE to do for current pages that are already deployed ( すでに展開されているページにおいて開発者が IE に期待されている振る舞いを変更するな ) " であることを理解しました。 ( もちろん、まだ展開されていない最新の標準に対して開発されたコンテンツに対しては、異なることを期待することができます。)

この痛みと予想外のレッスンを教訓として、我々は The Web Standards Project ( 社内の WaSP-Microsoft Task Force ) と共にこの問題に取り組みました。 私は彼らにこの仕事に対する十分な Credit を与えられません; みなさんが本当に好んでじっくりと標準コードを記述したい時に、5 億人のユーザーに提供するブラウザベンダーの牽引者として何をするのがベストなことなのか?ということを見出すのはとても難しいことです。 我々は " 相互互換性のある Web 開発を有効にするため (促進するため) しかしながら IE で現在動作しているページを壊さないようにする" という簡単なステートメントからスタートしました。 我々は Web 開発者が異なるブラウザー毎に彼らのサイトのテストやコード修正に多くの時間を費やさなくてもよくなる世界を促進していきたいと思っています。 同時に、標準準拠度を改善するための正当な理由があっても我々は私の母親のようなユーザーに対する現時点での Web サイトの Experience を壊すことはできません。 まだまだ改善の余地はありますが、我々は IE8 を標準に今以上に標準準拠なものにするための新しいエンジンを、すべてのすばらしいスタイルとレイアウト変更をもって開発しているところです。 ( より詳細については近い将来紹介しますが、 Acid2 対応のアナウンス がちょっとしたヒントになると思います。)

我々は、 Web 開発のモデルとは、実際 "標準に沿って書き、そして最もポピュラーなブラウザ上でテストして問題を解決する"  ことであることを十分理解しています。 この意図することは、Web 開発者が我々が活用できる欠かせない情報の一部 - IE のどのバージョンに対してテストしているのか? を持っており、そして WaSP-MS タスク フォース内での議論の後に、我々は <meta> タグベースの "テストしたバージョンのブラウザにオプトインする" という、ストラテジーを完成させました。 

WaSP-Microsoft タスクフォースのメンバーの一人である、Aaron Gustafson が我々が完了させたことの詳細を書いた an article今日 A List Apart  に投稿されました; 私は異なる観点から見るためにもこれを読むことを強くお勧めします。私は次のようにそれをまとめます:

  1. “Quirks mode” は (IE7 と) 同様に残り、現在のコンテンツと互換性を持つ
  2. “Standards mode” は IE7 と同様に残り、現在のコンテンツと互換性を持つ
  3. もしあなた (ページ開発者) が本当に IE8 が提供できるベストな標準準拠サポートを望むなら、あなたはシンプルな <meta> エレメントを用いてそれを実行できます。 Aaron が彼の記事の中でこの件の詳細を書いています。

我々はこのアプローチが、現在のコンテンツに互換性の問題が発生しないように、Web 開発者のみなさんが Web 標準に準拠した相互互換性のあるコードをより簡単に書けるようにするbest な調整と信じています。また同様にこのアプローチは、皆さんの予定に合わせて標準モードの動作オプトインしたり、それらを理解 (納得してもらう?) したり、また異なる動作を持つ新しいバージョンの IE が出てきた時に、強制的に開発者の方を現在のページに対して対応しなければならない状態がなくなるようにします。私は我々が IE8 に対して行っているすべての標準準拠に関する仕事にエキサイトしています; 加えてユーザーと Web 開発者に対して多くの互換性の問題を引き起こさない、ということについてもエキサイトさせられています。

Chris Wilson
IE Platform Architect

広告
 
コメントする

投稿者: : 2008-06-13 投稿先 Internet Explorer

 

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

 
%d人のブロガーが「いいね」をつけました。