Bug 1540 IMEの未確定文字の反転はシステムカラー(選択色)を使うべき(エディタの背景色にあわせて、必要なら反転もさせるべき)で、なぜ下線の色を見やすかった赤からテキスト色に変更したのか(Mac以外の場合)
初回投稿日時: 2005年11月23日02時20分02秒
カテゴリ: Mozilla Core
SNS:
Tweet (list)
質問やら苦情やら来そうなのであらかじめ書いておくことにする。なお、Windows以外のプラットフォームに関しては先日書いたとおり、Windowsにとりあえずあわせているだけである。
さて、Windows上で赤線を止めた理由は二つある。
一つ目の理由。IMEの未確定文字列を独自描画するアプリケーション(通常は、IME自身に未確定文字列の描画を任せる)と言えば、大抵、Microsoft製のもので、代表的なものにワードパッド、IE、Office製品等がある。これらの製品、それぞれで未確定文字列の表現方法がまたバラバラだ。これは一社の製品としてどうかとは思うが、MS社員ではないのでそれは置いておこう。で、この中でMozilla Japanのプロダクト最大の対抗馬、つまり乗り換えてもらいたい元の製品といえば当然、IEである。IEユーザが移行する時に違和感が無い、というのはプロダクトのひとつの戦略として有効なのでIEの表示にあわせたというのが一つ目の理由である。
二つめの理由。もし、テキスト色と関係ない色を前景の一部である下線に利用すると、背景色とのコントラストが保たれる保証が無い、という点である。たとえば、赤い背景色のエディタの上で未確定文字列を表示した場合、赤い下線が明確には見えなくなる。背景色は推測できているので、背景色が赤い場合には下線の色を別の色で置き換えるというアイデアもあるだろうが、それは難しい。代替色として素直に思いつくのは色空間の中で、中心点を挟んで反対の位置にある色である。Invertと同じ理屈だ。だが、このバグの当初指摘された問題を見ると分かるように、色空間の中心点に近い色の反対色は、元の色に似ているという問題がある。(この説明が分かりにくいなら、直線を思い浮かべて見ると良い。直線の両端を白と黒とすると、この直線はグレースケールを表現できる。中心が50%のグレーということだ。ここで、49%のグレーについて考えてみると、これの反対色は中心、50%から1%逆方向にずれた色になる。つまり、49%グレーの反対色は51%グレーだ。これは人間の目にはほぼ同じ色に見えることが分かるだろう。)これはどのような色空間を用いても解決できない。反対の色を使おう、というアイデアそのものに問題があるからである。
ちなみにIEでは下線を破線で表現している。これは現状でも太さの制限を考えなければ破線で行えるのだが、WindowsのGDIの昔からある問題で、太い破線を描画するには自前で描画しなくてはいけない。そこで、これはtext-decorationのCSS3対応が終わってから改善することにした。つまり先送りしているだけで構想はあることに注意して欲しい。