ほぼターゲティング

2002年に起こった話を話しましょう。 (正確な日付は忘れられますが、今年は正確です。)他の多くの物語と同様に、それは長いものですが、一部の物語とは異なり、真実です。



Netscapeの開発者がNavigatorを「削除」するブラウザであるMozillaの新しいリリースを準備している間に、Technology Evangelism / Developer Support(TEDS)グループのメンバーが人気サイトおよびパートナーサイトでチェックしました。 それらのいくつかでは、レイアウトが広がっていました。 ある場合には、非常に真剣に。



すぐに、問題がテーブルに置かれたスライスされた写真にあることが明らかになりました。 何らかの理由で、一部のサイトでこれらの画像間にギャップが発生しました。 掘り下げた後、私たちは理由を見つけました-Gekkoエンジンは、CSS仕様とより互換性のある文字列を扱うためのメカニズムを変更しました。 これで、画像は常にベースライン(特に指定のない限り)に「座って」おり、行の下部(下部のリモートフォント要素-約Per。)が常に存在していました。



これはブラウザの世界では新しいものでした。なぜなら、すべてのブラウザはすべてのブラウザが常にそうであったように振る舞ったからです。テーブルセルを画像のサイズに縮小しました。 唯一の問題は、この動作が正しくなかったことです。 CSS実装エラーを修正したGeckoは、そのようなサイトのレイアウトを「壊し」ました。 つまり、彼は標準モードでそれを壊しました。 非標準(癖)では、Gekkoは古い方法で動作し、減少するセルでフォーカスを実行しました。



問題のサイトの1つである開発者に連絡し、当時よく知られたソーシャルネットワーク(そのようなもの)で状況を説明しました。 Doctypeを非標準モードに変更することができないことはすでに知っていました。それは、他のことを壊してしまうからです。 td img {vertical-align:bottom;}の形式の簡単なCSS修正を提供できませんでした。テーブルに配置されたすべてのレイアウトがあり、カットしたものだけでなく、すべての写真をシフトするためです。 提供できるのは、状況の説明、スライスされたすべての画像に画像を「くっつける」CSSクラスを設定することの推奨、およびこれが他のブラウザに影響を与えないことの保証だけでした。



彼らの答え:「いいえ。 これがあなたの問題です。 すべてのブラウザがすべてを正しく行っており、何かを壊したからといって、テンプレートに煩わされたりクラスを追加したりするつもりはありません。



真実は、私たちがそれをまったく修復さえしたということでした-他のすべてのブラウザは正しく動作しませんでした。 しかし、この真実は私たちの問題を解決しませんでした。 CSSエンジンの改善をロールバックするか、このサイトとすべての同様のサイトを破壊するかという選択に直面したことが判明しました。 どちらも喜びを引き起こしませんでした。 そして彼らは、問題の解決策がなければ、それがサイトの更新であろうとブラウザの更新であろうと、製品は機能しないと言った。 そうでした。



既存の状況を要約します。 私たちは:



1.ブラウザの標準サポートの改善。



2.特定のサイトのレイアウトを損なうことがわかりました。



3.彼らの開発者は、彼らの側で何も変えることをきっぱりと拒否しました。



4.問題を解決する必要がありました。



改善をロールバックすることは不可能でした-これはテキストの表示に影響を与え、他の多くのものに影響を及ぼしました。 サイトの開発者に、いくら説明しても、これがWeb標準の開発とより正確なブラウザの動作の一部であることを納得させることはできませんでした。 私たちの前には2つの道路があり、それらのいずれにも沿って進むことはできませんでした。



そして、通常の標準および非標準に加えて、3番目のオプションである「ほぼ標準」モードが見つかりました。 はい、それが「ほぼ標準」モードが存在する理由です。 議論を正しく覚えていれば、ほとんどの場合、その存在について有罪です。 だから、Heck以外のブラウザで「ほぼ標準」モードに対処することを余儀なくされたすべての人を許してください。



問題のサイトをdoctypeするために「ほぼ標準」モードが使用されるように作成しました-XHTML DOCTYPEでした。 その過程で、IBM向けの特別なDTDをリリースしました。 彼らはサイトを検証するためにそれを使用しましたが、そこではすべてのHTMLが無効であり、説明された問題もありました。 したがって、3番目の表示モードが表示されました。 それは、一部のサイトが誤って配置されており、改善に対応するために変更を拒否したためです。 これは、Webの小さな(しかし人気のある)部分を損なわず、同時に標準サポートを改善するために行いました。



(ちなみに、この同じケースでは記事「 画像、表、および神秘的なギャップ 」が表示されました 。)



さて、この状況を数桁大きくすると、IEの人々が何に対処しなければならないかがわかります。 Netscapeにあったもの:一方で、過去の間違い、他方では、標準をより良く維持したいという欲求を満たすためのサイトの拒否。



誰かが、Microsoftが「先頭に立って」顧客の中で古いサイトに対する標準と調整の改善を促進できるユニークな立場にあると言いました。 わかった。 しかし、パートナーの億万長者企業が、長期契約と重大な罰則に関する条項に従って、IEの新しいバージョンが企業のイントラネットまたは商用Webを破壊しないことを確認するために調整と要求を拒否した場合サイト。 そのような場合の1つは、十分な障害です。



DevEdgeに関するすべての出版物、Geckoで作業するためのコード、CSSおよびJSを更新するためのサイトへの積極的な支援(他のブラウザーで中断しないように)、およびGeckoの標準サポートを改善するプロセスでの支援は、この障害の克服に役立ちませんでした。 私は歩き回らなければなりませんでした。



振り返ってみると、この経験がブラウザーターゲティングの提供に対する私の同意に無意識に影響を与えたと推測できます。これは、ある意味で、これがまさに同じ条件でMozillaを使って行ったことだからです 何らかの信頼できるアンカーではなく、特定のDoctypeにすべてを結び付けて、より暗黙的で信頼性の低い方法で実行しました。 そのサイト(およびその他すべて)に、ページの上部またはサーバーヘッダーで「Mozilla 0.9として描画」(または何でも)を尋ねる簡単な方法を提供できれば、彼らは同意するでしょう。



しかし、私たちが提案し、彼らが拒否し、改善をロールバックするか、ブラウザを修正する選択に再び直面した場合、どうすればよいですか? 私の内なる理想主義者は考えたくない。 内側のプラグマティストはうなずく。 このような状況で他に何ができるでしょうか? すでにリリースされているものに我慢することを期待して、最も人気のある10の1つであるサイトを破壊するブラウザーをリリースするにはどうすればよいですか? これが注目に値する方法であり、時にはユーザーのWebサーフィンプロセスを非常に深刻に台無しにすることを知っていますか? いや CSSを改善せずに製品をリリースするか、デフォルトの貧弱なターゲティングを使用します。 当時はバージョンターゲティングはありませんでしたが、同じことを行い、Doctypeにすべてを掛けました。



短期的な問題の短期的な解決策は? はい しかし、これを行わなかった場合、Netscape / Mozillaによる標準の貧弱なサポートはどれだけ長く続き、多数のユーザーの前にある多くのサイトを壊さずにこの改善が返される日を待ちますか? たぶん年。 そのため、標準のサポートをより迅速に改善できるようにするために、バージョンターゲットの弱い類似性を適用しました。 それは5年以上前のことです。



ですから、IEの難しさと彼らが提案した解決策にもっと同情するかもしれません。私自身も同様の問題を経験したからです。 そのような程度ではありませんが、規模の違いにもかかわらず、ジレンマはそれほど憂鬱に見えませんでした。 これは、私が言ったことを評価する際に考慮すべきであり、このトピックについて語ります。



All Articles