仕事再開は明日以降
初回投稿日時: 2006年04月03日00時11分45秒
カテゴリ: 雑談
固定リンク: id=2006040300
SNS:
Tweet (list)
ぐでぐでに疲れているので仕事再開は明日以降になります。すいません。
この日記はMozillaのプロダクトへの貢献者としての私の成果を中心に、気になったバグやWeb界隈の話題について書いていますが、 断り書きがある場合を除き、いかなる団体のオフィシャルな見解ではありません。あくまでも個人的なものです。 Mozilla Foundation、Mozilla Corporation、及び関連企業の公式情報ではないことに注意してください。
現在、XHTML 1.0 (もどき)から、HTML5なコンテンツに修正中です。古い日記は修正が完了していませんので表示が崩れます。 順次、修正していく予定ですのでしばらくお待ちください。
ぐでぐでに疲れているので仕事再開は明日以降になります。すいません。
とりあえずアドホックなやり方で修正完了。そのうちにより良いパッチを再提出するつもり。
BeOSでもCairoビルドがサポートされた模様。
ついにWin9xのサポートが終了した。
えむけいさんのおかげでコードがかなりコンパクトになっている。
今夜のTrunkビルドからはWin9xでは非Cairoビルドであっても使えないので注意。
LinuxもデフォルトビルドがCairoになった模様。
とりあえずWindowsではぱっと見は問題なくなっている。だが、文字を選択すると文字が揺れる現象がひどい。現在対応策を検討中。
Macで署名ファイルを常にUTF-8で作る必要があったバグを修正した。
この修正で、どのような環境でもデフォルトの文字コードと、UTF-8の双方が署名ファイルに使えるようになった。
IMEの強制確定処理の呼び出し位置をエディタからESMに移動するリファクタリングが完了した。Caminoではこのバグの修正により、未確定文字列がある状態のままフォーカスを移そうとするとクラッシュする模様。クラッシュに対する安全策のコードは入れているのだが、発生しているようなので何かバグ持ちなのは確かな模様。Caminoに関する問題はBug 5091で対応予定。
Bug 4986の修正で共に修正された。これでLinuxのIMの制御処理は完成した。
IMのOn/Offの切り替えはできないままだが、これを実現する案は私には無い。もし、実現可能な案があれば新しいバグをたてて教えて欲しい。
これもBug 4986で修正された。
しかし、Caminoではそうでない可能性が高い。
Pango用のパッチを提出してみたが、BeOSでのテストができない。 BeOSでのテストをしてくれる方、募集。
キャレットまわりのリファクタリングが行われて、Cairoでのキャレットの表示も改善されている。だが、いくつかregressionがある模様。
ローカルパスがUTF-8で扱えるようになったことでのregression。非ASCII文字をパスに含むファイルを添付できても送信できなかったが、修正されている。
えむけいさんのおかげで修正されている。
現在、デフォルト設定だとクエリ以外の部分をUTF-8で送信し、それ以外はドキュメントのエンコーディングでエスケープするようになっている。これはIE6と同じ挙動。
中国語のIME、Unispimで発生していたバグ。結構鬱陶しいものなのに修正されていなかった上に本家のバグ番号もかなり新しかったので中国もFirefoxユーザ、開発者は少ないのかもしれない。
とりあえず、発生していなかったGecko1.7当時と同じ条件になるようにソースを修正したが、他の国で問題が発生しないのかが非常に気がかり。もし、キー入力にregressionを発見した場合、是非一報が欲しい。
フォーカスのアウトラインを前景色で表示するように修正した。
David Baronからツッコミを入れられて、現在は正式にoutline
プロパティからinvert
値を取り除く作業中。
また、クラッシュするregressionがあるので注意。キーボードでフォーカス移動を多用する人はこのバグが修正されるまではTrunkは使用しない方が良い。
Gecko1.9(Firefox3に搭載予定)ではグラフィックエンジンにCairoを利用することによって、今まで修正が不可能もしくは困難だったバグを修正しようとしている(例えばページ全体のズーム機能)。
このCairoの現時点での最大の欠点がXOR描画による反転表示ができないことである。XORによる反転は、Gecko1.8まででは、キャレットとoutline
のinvert
に使っていたので、これらの処理の見直しが現在行われている。
現時点ではキャレットは常に前景色(テキストの色、つまりcolor
プロパティ値)と同じ色で描画されるように修正されている(Bug-org 287813)。しかし、これにも問題があって、MS ゴシックの一部の漢字と相性が悪いことが分かっている(Bug 5124)。
もっとも、ここまではブラウザとしてのFirefox自体の問題でWebページのコンテンツ作者には何の非も無い話だが、次のoutline
の話はコンテンツ作者も気をつけなくてはいけない(フォーカスを示す反転した点線の矩形はoutline: 1px dotted invert;
で実現されている)。
現状ではoutline
プロパティからinvert
値のサポートをドロップするように話が進んでいる(Bug 5127)。invert
値をサポートしない場合の規定がCSS2.1には存在していないが、CSS3では次のように規定されており、これに従う形で修正を行っている。
Conformant UAs may ignore the 'invert' value on platforms that do not support color inversion of the pixels on the screen. If the UA does not support the 'invert' value then the initial value of the 'outline-color' property is the 'currentColor' [CSS3COLOR] keyword.
currentColor
値とはCSS3で定義された色で、その要素の前景色を示す。つまり、outline-color
の初期値のinvert
は前景色が用いられることになり、invert
値を含むスタイルシートのoutline
もしくはoutline-color
プロパティは無視されることになる。
つまり、outline
を指定していないリンクがフォーカスを受け取ると、Gecko1.9では前景色の点線で矩形が表示されるようになっている。もちろん、これはほとんどのテキストリンクでは今まで通り、無指定のままで問題は無い。(背景色と同じ前景色の隠しリンクを探しにくくなったというユーザ問題はあるが。)
問題は画像のリンクである。画像のリンクに対しても前景色をきちんと指定するのはアクセシビリティの点からは必須事項だが、実際にそこまで実践しているサイトは少ないのではないかと思う。これを徹底して、画像が表示されない時の代替テキストも、しっかりと背景色とのコントラストを確保しておかなくては、Gecko1.9上ではとても不便なサイトになってしまう。なぜなら、フォーカスがどこにあるのか分からなくなってしまうからだ。これはマウス等のポインタによるナビゲーションではあまり問題にならないかもしれないが(使っている感じでは気持ち悪いが、慣れの問題かもしれない)、キーボードでアクセスしている人にとっては致命的な問題である。
キーボードで操作する人なんて少ないだろうから、知らん
という人も居るかもしれないので、書いておくが、常にマウスが使える環境とは限らないノートPCからのアクセスではキーボードナビゲーションは重要である。決して極々マイナーなユーザの話では無いことに注意して欲しい。(流行のblogのレイアウトで、本文以前に大量のリンクの上をフォーカス移動しなくてはいけないサイトが大量にあることから、この問題はおそらく真剣に考えている人が少ないかと思う。)
また、outline
を直接指定して、対応するという方法もあるが、これではアクセシビリティに問題を抱えたままである可能性があるのでお勧めできない。Webサイトを作成している人はこれを機に、是非画像を無効にした状態での表示を確認しておいて欲しい。また、単純に画像をオフにすると、背景画像も消えてしまうので、背景画像と、背景色が大きく異なっている場合(もともとこのような状況は、かなり好ましくない状況であるが)には、実際にGecko1.9でのテストが必要になるだろう。
それから、この問題自体は、Geckoのアクセシビリティに関する大問題なので、アクセシビリティの担当が別の良い方法が無いものか検討している段階でもある。最終的にどうなるかはまだ流動的であることにも注意しておいて欲しい。
GTK2ビルドを使っている人にお願い。
GTK2で、おそらくウインドウを閉じるときにIM_get_input_context()
でクラッシュすることがあるようだ。関係者は誰も再現に成功していないが、大量のクラッシュリポートがtalkbackで送信されている。
クラッシュ自体を抑制するパッチは書いたのだが、原因が分からないので、安易にこのバグを修正することで、クラッシュせずにデータを破壊するようなことがあるとなおさら困る、ということでチェックインが保留されている。
再現方法が分かる人、原因を特定できる人は是非、情報を提供して欲しい。