2015-08-14

WebCompat

MozillaはFirefoxやFirefox OSの開発以外にもいろんなことをしてが、Mozilla社内にはWebCompat Teamってのがある。

何をしているかを説明すると、Firefoxや他のブラウザで表示されないページを解析して、なぜ表示されないのかを調べ、それを製品やWebの標準に活かすことをやってる。場合によってはコンテンツ制作元・会社へ問い合わせをして、具体的な修正方法を提示するってこともする。

今年になって彼らはアジア圏のモバイルWebサイトを集中的にみてる。具体的には中国と日本。日本も見てるけど、日本語がわからない人が見てるんじゃないのって思う人はいるかもしれないけど、チームメンバーの一人は日本に住んでいるので日本の事情もよく知ってる

日本のサイトにおいて彼らはTOP100+のモバイルサイトをすべてチェックして、大体の傾向があるそうだ。

  • CSS flexboxはwebkitプレフィックスを使った古い形式のものが未だに使われている (= Web標準を利用していない)
  • CSS xxx (いろいろ) はwebkitプレフィックスを使った古い形式のまま未だに使われている (= Web標準を利用していない)
  • ユーザーエージェント文字列にWebKit的なのがないとモバイルと見なさない。またAndroidという文字だけでもモバイルとみなしてない。でもAndroid 4.0のようにバージョン番号を含めるとそれが改善するサイトが結構存在するらしい
  • 使われているライブラリがWebKitでしか動かない (CSS TransformがWebKitプレフィックスがないと動作しない。JavaScriptから触る場合も含めて)

Mozillaの解析結果で言えば、Microsoft Edgeのユーザーエージェントの件は、現状のモバイルWebでどうしたら適格に表示できるようにするかということを考えればいたしかたないことだと思う。これをバカにする人たちは現状のモバイルWebを理解していないか、SafariとChromeだけで動けばいいサイトを作るひとのどちらかだ。そういう人たちに限って、Internet Explorer 6でしか動かないサイトを作ってた人たちなんじゃないかな

でもMozillaのやりかたで言えば、Microsoft Edgeのやり方よりももっとすべきことがあると思う

Mozillaで言えば、こういうことをまず最初にやる

  1. 表示できないサイトを調査 (それ用に検出ツールもある)
  2. 原因を特定し、サイトのオーナー (要はその会社) にコンタクト
  3. コンタクト可能であれば、修正方法も含めて提供・アドバイス

MozillaはモバイルWebにおいて強力なシェアを持った会社ではないので、僕らの言うことなんて聞いてくれない・無視する会社も存在する。もちろんコンタクトをとったところ、ちゃんと直してくれるところもあるけどね!。どうしても直してくれない場合にはいくつかメカニズムを用意してる

UserAgentの書き換え

ユーザーエージェントを強制的に別の文字列にすることでモバイルページとして認識させる。https://dxr.mozilla.org/mozilla-central/source/mobile/android/app/ua-update.json.inにリストがある

CSS unprefixing service

webkitプレフィックスとかを強制的に外す。https://dxr.mozilla.org/mozilla-central/source/caps/nsPrincipal.cpp#501ここらへんがそのホワイトリスト。

ということもやって、モバイルWebページに対しても表示改善を行っている。ここ数か月でFirefox for Androidを使った時にページ表示が改善しているはず。

こんなことをブラウザベンダがやらなくてもWeb開発者が標準に即したページを作ってくれればいいんだけど、残念ながらそういうことにはなっていない。プレフィックスというデザインがよくなかったという話は数年前にしていたけど、いまだにこれが現状だ。

またWeb Compatibilityって考えかたはシェアが大きい会社であればあるほど言わない。それは昔のMicrosoftを見てればそうだし、今のシェアの高い会社を見れば、そんな感じ。MozillaもMozilla.orgになってからはここを重要視しているし、各ブラウザの互換性向上には各ベンダーが投資してほしいなと個人では思ってる

最後に、報告先として彼らはサイトを持っているので、https://webcompat.com/ に報告してもらえると助かる。ここはFirefox以外にEdgeの件も報告してもらって構わない。Web全体のComaptibility向上が目的なので。

あ、これらの話はもう少しデータ付きで会社のブログに書くべきだなと今思った