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

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

もずはっく日記(2013年4月)

2013年4月15日

Bug-org 857820 Drop only blink effect from text-decoration: blink; and completely remove <blink> element
初回投稿日時: 2013年04月15日15時08分54秒
カテゴリ: CSS HTML Mozilla Core Mozilla23 バグ修正
SNS: (list)

もう、色んな意味でうざいので、blink指定による点滅処理を削除しようよ、というバグです。

Google ChromeのWebKitを、Blinkとしてフォークするというニュースを見てて、『そーいや、OperaもChromiumベースなんだから、Blink陣営になるんだろうな』とぼんやり考えていたところ、『blinkの点滅効果って、OperaのPrestoと、Geckoしかサポートしてないんだから、Operaが、blinkの点滅効果をサポートしない、Blinkエンジンに移行し終わればGeckoだけが孤立するんで、サポートをやめたら、コードがざっくりと削除できていいんじゃないか?』って思いつきました。

そこで、削除を提案してみたところ、すんなりとコアメンバーが賛成してくれたので、他のバグで煮詰まってた気晴らしに作業することにしました。

当初は、text-decoration: blink;自体のサポートを中止することでスタイルシステムが食っているメモリを多少削減できるので良いと思っていたのですが、えむけいさんが、それはCSS仕様に違反する上、他のブラウザとの互換性も損なうと忠告してくれたので、まずは点滅処理の削除だけを行うことにしました。

ちなみに、もし、text-decoration: blink;自体のサポートを中止すると、text-decoration: underline blink;のような指定があった場合、このスタイル指定全体が無視され、下線が引かれなくなってしまいます。ですが、値のサポートは継続していますので、下線は引かれるものの、点滅はしない、という形になります。これは、他のブラウザと全く同じ動作です。

また、単にCSSのパーサでのみ、blinkキーワードをサポートしている訳ではありませんので、DOM APIを用いて、算出値等を取得した際には、blinkが指定されている場合には、きちんと、blink値が返ってきます。

つまり、Webアプリから見ると、CSSのtext-decoration: blink;に関しては、何ら、変化がなかったように見えます。

そして、もうひとつ、<blink>タグのサポートを中止するかどうか、という課題がありました。色々とややこしいことになってコメントが伸びてしまっていますが、こちらもえむけいさんの尽力により、HTMLパーサや、HTMLエディタで、<blink>タグは未知のタグとして扱うように修正しました。

このため、DOM APIで<blink>要素のノードを作成すると、未知のHTML要素としてオブジェクトが生成されるようになっています。

まとめると、変更点は以下のようになります。

  • text-decoration: blink;は、スタイルシステムでは引き続きサポートされる
  • 点滅はしなくなる
  • <blink>要素は未知の要素になった

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

bug-org 857820を含むエントリ