OperaのUAは以後ずっとOpera/9.80になります

Dev.Opera に出た Andreas さんの記事より。

Opera 10 の UA

Opera/9.80 (Macintosh; Intel Mac OS X; U; en) Presto/2.2.15 Version/10.00

のような感じになり、Opera 11 は

Opera/9.80 (Macintosh; Intel Mac OS X; U; en) Presto/2.2.15 Version/11.00

というように、Version の部分だけが上がることになる模様。

"Opera 10" が "Opera 1" として認識されるケースがまだ残っているため。

感想

UA によってブラウザのバージョンを調べるすべてのシステムが、Opera 10 以降のために書き換えを必要とするようになる。

元々この件は、"Opera 1" と誤判定してしまうシステムを書き換えてくれるウェブサイト管理者が少ないのが問題だったのであって、そういう誤判定システムを使っているウェブサイトは数としては多くないと思う。*1

つまり、誤判定スクリプトを使っている少数のウェブサイトのうち、スクリプトを更新する気のないさらに少数のグループのために、そうでないウェブサイトも含めて全体の対応を求めるというのはどうなのかなと思う。

1年後ぐらいに、Opera 10 が Opera 9 と認識されてしまって云々という話を聞くような気がする。問題の先送りをしているだけではないか。

追記

これらの、バージョンナンバーのチェックが正しく行えていないために起こる問題というのは、類挙にいとまがない。たとえば、Windows 95のバージョンナンバーでも一騒動あったと聞くし、Flash Player 10がリリースされた時も、バージョンナンバーのために動かなくなったクソなFlashがたくさんあった。nVidiaですら、Windows向けのGPUのドライバのバージョンを100にあげたとき、ドライバのバージョンを確認して挙動を変えていたゲームが、いくつか動かなくなるという問題に見舞われた。ブラウザでいえば、MSIEは、未だに、Mozilla/4.0という文字列をUser-Agentに使用している。

本の虫: バージョンの確認方法について

こういう「2000年問題」の類ってけっこういっぱいあるのね。

Opera 20 とかになっても Opera/9.80 とか使ってると思うと…

また追記

コメント欄などにあるように、これから Opera 10 以上を判別するサイトはどうせ書き換えるので問題ないのは分かるのだけど、どうも納得が行かない自分もいる。今のまま動くコードを、ちゃんとやってないサイトのせいで書き換えないといけないのが。

まあ UA なんてどうせコロコロ変わったり新しい物が出てくるもので、単にブラウザメーカーの勝手な文字列でしかない。それに比べウェブサイトは無数にあるので、出来る限り既存のシステムで動くように変えていくのがブラウザベンダーの努めであると納得しておこう。

ChromeUA だってこんなんらしいし。

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13

もっと言うと、Opera は、UA に "Opera" が入っていることによる判定を勧めていないらしい。Opera 10 からはレンダリングエンジンである Presto のバージョンが入るようになったので、Opera を判定する時は "Presto" で判定してほしいとのこと。

携帯など色んなところで Opera は使われているが、Presto のバージョンは一様であるため。

*1:実数は知らないが、元々間違ったコードなわけだし、それほど多くはないと願う