近況報告たまに18歳未満の人や心臓の弱い人にはお勧めできない情報が含まれることもあるかもしれない、甘くなくて酸っぱくてしょっぱいチラシの裏。RSSによる簡単な更新情報を利用したりすると、ハッピーになるかも知れませんしそうでないかも知れません。動向はもえじら組ブログで。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。:activeのダイナミック疑似クラスに対応させた......つもり。試してみたら:focusは意図通り動いてくれない。2007テキストシャドウに、userContent.css内の指定を読む機能を加えた。圧倒的多数のサイトではtext-shadowはまだまだ使われていないけれども、ユーザースタイルシートを使えば色々遊べるよ、と。いっても全サイトで同じ色の影しか指定できない、サイトごとにいちいち影の色を指定しなきゃいけない、なんてのじゃあとてもじゃないけど使ってらんないので、userContent.css内の指定のみ、色が無指定の時はCSS3の仕様を無視して自動的にそれっぽい影の色を適用するようにしてみた。}とかuserContent.cssに書いとけば、色んなサイトで影が付いて楽しくなるかもしれません。ちなみに、XPCOMを使ってもuserChrome.cssやuserContent.cssから生成されたスタイルシートオブジェクトには絶対にアクセスできない。今回は、新規に空のドキュメントを生成し、そこにxml-stylesheet処理命令でuserContent.cssを読み込ませて、生成されたスタイルシートオブジェクトを参照する、という裏技を使っている。2007テキストシャドウを作って以降、何かの機会に見るページで不意に影付きテキストがあったりして、「ああ、今まで僕は『古いブラウザの人は最新のWeb技術の恩恵を受けられなくてかわいそうだなあ』とか思ってたけど、いつの間にか、Firefoxユーザの自分自身の方が『最新の技術の恩恵を受けられずにみすぼらしいページしか見れずにいるかわいそうな人』になっていたんだ......」と切なくなる。2007Bugzillaの方のコメントにも書かれてるけど、テキストシャドウを公開した後で、2年以上前に同じようなことをやってた人がいたことを知った。いやぁ、薄々「既出なんじゃね?」とは思ってはいたんですけどね。一応、対応してる機能(CSSのセレクタをかなりまじめに解釈してる)や使い勝手(XBLを使ってるので影付きテキストのコピペで困らない、アドオンだから自動アップデートできる、など)の面でアドバンテージはあると思うけど......まあ追加のコメントにも書いたように、頑張ればそれもGreasemonkeyスクリプトで実現は可能そうではあるわけで、アドオン嫌いグリモン好きというタイプの人は頑張ってみるのもいいかもね。2007テキストシャドウは原理上、影付きのテキストをコピーしようとした時に、影のために使っているダミーテキストまでコピーされてしまうのが大きな問題だった。フォーカスできなくしたり選択できなくしたりすることはできても、コピーの対象から外すということは、普通にやる限りはどう頑張ってもできない。これをどうやって解決したのかという話なんだけど。以前XHTMLルビサポートを作った時に、略語のフルスペルをルビで表示するという機能も持たせていて、そうやって表示したフルスペルはどう頑張ってもコピーできないという現象が起こっていたんだけれども、これがヒントになった。略語のフルスペルの表示のためにルビサポートではバインディングを使っていて、どうやらバインディングで埋め込まれた匿名内容の中のテキストノードは、触れることもコピーすることもできないようだった。XBLの<children/>要素の位置に配置された元々の子要素や子のテキストノードについては、通常通りアクセスできる。いうことは、逆に言えば、コピーの対象にさせたくないテキストはバインディングを使って匿名内容の中に入れてやればよいというわけだ。ダイナミック疑似クラスの問題はまだ残っているとはいえ、もっとも致命的な問題はこうして解決できたので、やっと胸を張って「Firefoxをtext-shadowに対応させました」と言えるようになったと思う。2007テキストシャドウを地道に改良し続けている。3でも動くようにしたGeckoもtext-shadowに対応してくれ!というバグにこれを貼り付けて煽ってみようかと思ったら、貼られていたテストケースで::first-line疑似要素が使われてて表示できなくてこりゃまずいと思ったんで、元々対応する気の無かった疑似要素と疑似クラスにまで頑張って対応してみた。疑似クラスについてはGeckoすら対応してない物にまで対応してたりして。名前の通り、CSS3のtext-shadowを無理矢理再現するインチキ拡張機能。以下は原理的にどうしようもない問題。:after疑似要素以外はサポートの目処が付いた。:selection等はこの実装だと実現してもあまり意味がないし、そもそもFirefoxではセレクタ自体が無視されてしまうので、実装はオミットしても良さげ。0.2.2007080702でダイナミック疑似クラスに対応した。無駄な文字列までコピーされてしまう問題は0.2.2007080101で解決した。以下はめんどくさいから実装をさぼってる部分。そのうちどうにかするかもしれないし、しないかもしれない。userContent.css内に書かれたtext-shadowの指定を読めない。0.2.2007080602で、userContent.cssで書かれた指定も反映するようにした。名前空間付きのセレクタに対応していない。ウィンドウをリサイズした時に自動で再描画しない。0.1.2007072902で再描画処理を入れた。mm、cm、pt、pcなどの絶対単位に対応していない。絶対単位は72dpi固定でとりあえずサポートした(0.1.2007073101)。ちなみにemとexの算出方法もいいかげんです。@mediaルールやなんかにも対応してません。0.1.2007072801で@mediaに対応した。セレクタの優先順位もまともに評価してません。0.2.2007080101で、セレクタの優先順位も計算するようにした。style属性で指定されたtext-shadowには対応してない。style属性での指定には0.1.2007072800で対応した。0.1.2007072802で複数の影の表示に対応した。Firefoxの仕様上の問題で3つ以上の指定は正しく認識できない。セレクタから要素ノードを選択する処理は、selector.jsを丸パクリ。組み込んでみたら予想以上にまともに動いてくれなかったので、半泣きになりながら修正してやっとちゃんと使えるようにした。