Mozilla Japan ブログ

Mozilla、Firefox、Firefox OS、Thunderbird の最新情報をお伝えします

個別記事アーカイブ

WebKit を念頭に作成されたサイトで起きるブラウザー互換性問題に対する Firefox の対応

[この記事は米国 Hacks ブログで公開された "Firefox 49 fixes sites designed with Webkit in mind, and more" の抄訳です]

最近 Hacks で公開したいくつかの記事で、 ブラウザー互換性を意識したウェブ制作の重要性 と、優れた開発者がブラウザー互換性を考慮してどのようにウェブを制作しているか について述べてきました。すべての人がウェブを利用できるかどうかは、開発者にかかっています。今日の時点で、多くの 互換性に関する機能 が Firefox のレンダリングエンジンである Gecko に搭載されています。これは WHATWG の定める最新の互換性標準 によるものです。

Firefox の今回行われた更新で、特筆すべき変更が加えられました。それはいくつかの -webkit- のついた属性と、WebKit に固有なインターフェイスのサポートです。いずれも標準化されていないブラウザーベンダー固有のものであるにも関わらず、多くのサイトで利用されているものです。

標準化されていない、つまり互換性の損なわれた CSS を利用するということは、標準にそって設計されたユーザーエージェントが正しく振る舞えなくなることを意味します。そんな技術を用いて作成されたサイトを、Firefox 48 以前に代表される -webkit- プレフィックスに対応していないブラウザーで閲覧すると、サイトが壊れているように見えるでしょう。この状況はサイト側の CSS が更新されるまで続きます。だからこそ、今回の更新で Firefox には以下の変更を加え、WebKit でのみ動作するコンテンツに対する配慮を行いました。

  • WebKitCSSMatrix() インターフェースへの対応
  • -webkit-gradient() への対応
  • -webkit- プレフィックスのついたものを、相当する標準的な機能へ適切に対応させる機能の追加
  • 古い -webkit- プレフィックスのついた flexbox のうち、いくつかを -moz- プレフィックスのついたものに対応させる機能の追加
  • 接頭辞のないものが定義されていない以下の CSS 属性への対応

よくある(?)質問

Q. 私にはどういう意味がある変更なのですか?

A. 利用者にとっては、モバイルサイトに良くある WebKit のためだけに作られたサイトの互換性が向上します

WebKit のためだけに作成されたサイトを WebKit とそれ以外とで表示させた図。非 WebKit のブラウザーでは表示崩れが起きています。

開発者にとっては、-webkit- だらけの CSS を作らなくても、それと相当する接頭辞のない属性も追加できることを意味します(過去に戻って追加したいと思う人もいるはずです)。これらの接頭辞は、(理論的には)いつの日かウェブプラットフォームから削除されます。

プロ向けの TIPS : 接頭辞なしの属性は、常に最後に書きましょう。

Q. 以前のバージョンでは、私の作ったサイトは壊れて表示されていたのですか?

A. そうではなかった、と期待しています。壊れていたかどうかは、以下の設定を変更することで確認できます。

about:config?filter=layout.css.prefixes.webkit

もし違いがある場合は、バグとして bugzilla.mozilla.orgmitaylor@mozilla.org を CC に入れてご報告ください。もしくは webcomapt.com へご報告いただいても結構です。

Q. -webkit- プレフィックスのついたものだけ使えば良いのですか?

A. いいえ。やる必要のないことですし、お勧めできるものでもありません。ウェブ標準を使い、複数のブラウザーでの動作を確認し続けてください。以前と比べてそうしなければならない理由は随分と少なくなっていますが、どうしても -webkit- プレフィックスのつく属性を CSS で利用する時には、必ずプレフィックスのついていない属性よりも上の行に書くようにしてください。

完全な情報公開のために : この記事を執筆した Mike は、WHATWG の互換性に関する標準を策定しています。しかし あなたが貢献できる余地 は十分にあります。

mitaylor について

Mike は Mozilla のウェブ互換性エンジニアです。テキサス州オースティン在住。

mitaylor によるその他の記事はこちら

Justin Crawford について

Justin Crawford は Mozilla のプロダクトエンジニアで、ディベロッパーマーケティングとグロースを担当しています。未来について考え、ものを作り、バイクに乗ることを好みます。

Justin Crawford によるその他の記事はこちら

前後の記事

前の記事: 最新版 Firefox : マルチプロセス化の対象範囲が拡大し、デスクトップ版および Android 版に新機能が追加されました
次の記事: Firefox を法人で利用いただく際のサポート体制を強化しました