この日記はMozillaのプロダクトへの貢献者としての私の成果を中心に、気になったバグやWeb界隈の話題について書いていますが、 断り書きがある場合を除き、いかなる団体のオフィシャルな見解ではありません。あくまでも個人的なものです。 Mozilla Foundation、Mozilla Corporation、及び関連企業の公式情報ではないことに注意してください。

現在、XHTML 1.0 (もどき)から、HTML5なコンテンツに修正中です。古い日記は修正が完了していませんので表示が崩れます。 順次、修正していく予定ですのでしばらくお待ちください。

もずはっく日記(2008年1月)

2008年1月2日

ブラウザ判定(しかもダメダメ)しているYahoo! Japan #2
初回投稿日時: 2008年01月02日17時17分22秒
最終更新日時: 2008年01月03日10時17分56秒
カテゴリ: 雑談
SNS: (list)

昨日のエントリへの反応を読ませてもらいました。正月早々楽しんでます。

その中でも一番興味を引かれたのが指向性メモ::2008-01-02::ブラウザ判定に失敗した時のフォールバック先はフル機能であるべきなのかさん。

この文には議論の余地があると思う。本来という言葉を使うほど、この文が示す内容は妥当なものなのだろうか。というのも、今回Yahoo! JAPANは確かに最適とは言えないブラウザの判別方法を採用してしまったわけであるが、基本的には最新のブラウザにキャッチアップしていく姿勢で有るはずだ。作って放置するサイトならまだしも、このように最新状況にキャッチアップしていくサイトにおいては、フォールバック対象を前方互換(つまり未知のブラウザ)よりも後方互換(化石ブラウザ)に絞るのは間違った判断だとはいいきれない。

(中略)

もし(判別を正しく行ったとして)、旧ブラウザが多い場合、後方互換性に重きを置くという選択肢は十分あり得ると考えられる。

またそのような対象外ブラウザを使用するユーザのスキルについても考慮する必要がある。一般に、未知のブラウザを使うようなユーザと、古いブラウザを使い通い続けているユーザの事を考えた場合、前者のほうが問題発生時の対応力が高いと期待できる。問題が発生すると完全にお手上げ状態になる後者のユーザに、サイト側が歩み寄るのは対策としてはアリなのではないだろうか。

また、このような古いブラウザを使わざるを得ない環境を考えた場合、ユーザが取れる対応が著しく制限されている状況が考えられる。つまり、ハードウェアのスペックや社内規定による制限で、「動かない物は動かないのだ」とユーザがサイトの利用を諦めざるを得ない状況である場合だ。逆に未知のブラウザを利用できる環境ならば、旧バージョンを利用するなり何かしら対応を取る余地があると考えることが出来るだろう。

Flashオンリーのページが環境によっては困るように、ブラウザによっては動かない機能バリバリのページも困るものだ。そういう場合、フォールバック先をよりシンプルなページにすることは必ずしも間違っているとは言えないのではないだろうか。

ということで後方互換ページにフォールバックするのは良いことだという主張がなされているが、私はこれは違うと考えています。

まず、サイト側からすると、コンテンツを見る対象を有名ブラウザを経由した人間に限定しています。つまり、様々なクローラもYahoo! Japanが配慮してくれない限り、嘘のUA名でアクセスしないと、本来、欲しいコンテンツを取得できません。ブラウザによって表示可能な内容を変更していると、IEに偽装して得た情報がFirefoxで検索した時に表示され、その情報にアクセスすると全然違うものが表示される、そういう事態が発生してしまいます。もちろん、Yahoo! Japanの様に有名なサイトではこれは問題にならないかもしれませんが、こんな不作法を他のサイトが真似するとどうなるでしょうか?

そして古い環境への配慮、ということですが、サポートが終わっている古い環境のことを指しているのだとすれば、ネットワーク上にそれらで接続する行為、もしくはそれを促す行為自体が間違っています。Webサイト側はそもそもそれらをサポートすべきではありません。多数のWebサイトによるレガシーUAのサポート破棄は、その間違った利用者を安全なプロダクトに導く、良いキッカケになるでしょう。

そもそも、そのような古いUAをサポートしたい、という点でフォールバック先が「その他」であることが間違っています。古いUAをサポートしたいのであれば、古いUAをifで切り、elseを使うべきではありません。

私は、最初に仕様書の知識のみでサイトを作り、まずは理想的なバージョンを完成させ、実際のブラウザのバグで動作しない部分は、それぞれのブラウザ用のQuirksを入れていく、というのが正攻法だと考えています。つまり、未知のブラウザではブラウザ対策のコードが動かないので、理想的なバージョンが見ることができる、そういう形です。

それに対して、古いUAや携帯電話のフルブラウザのように、極端に環境がモダンブラウザとは異なるものを対象に加えるのであれば、それは専用のページを作り、誘導すべきです。決して同じURLでやるべきことではありません。

私は(特にひとつのURLで)ブラウザによってコンテンツを変更するというのはタブーであると考えています。なぜなら、フォールバックされていることに想定外のUAの利用者は気づかない可能性も高いからです。例えば今回のY!Jのトップページでも、Yahoo! JAPANトップページの全機能をご利用いただくには、以下の環境が必要となります。Windows:Internet Explorer 5.5以上、6.x、7.x / Firefox 2.0以上 Macintosh:Safari 2.xと書かれるのみで、コンテンツそのものが違うことを一切注意していません。

関連するかもしれないエントリ

ブラウザ判定(しかもダメダメ)しているYahoo! Japan #4

ブラウザ判定(しかもダメダメ)しているYahoo! Japan #3

ブラウザ判定(しかもダメダメ)しているYahoo! Japan

このエントリへのリンク元