Hatena::Groupweb

vantguarde

|

2.5

State of the Browsable Web 2009: CSS Multi-column Layout

| 21:52

さてと。

昨年12月ですが、Multi-column LayoutのCRが公開されました。

「CSS3」とタイトルに入ってないのは、下位レベルがないからです。下位レベルがあるものは「CSS *** Module Level n」に、ないものはLevelを取るという命名指針が結構前に決まってたんですが、ようやくこのモジュールもそれに準じたものになりました。他のもそのうちなってくでしょう。

LCからは、カラム幅より大きな何かが float されている場合の処理が変更になり、それまではカラムを超えてちゃんとfloatがきく予定だったのですが、カラム幅でクリップされてしまうようになりました。

さて、いちばん大きかったのは、column-break が削除されて、break-before, break-after, break-inside というプロパティが替わりに導入された事でしょうか。

もともとは昨年3月のTokyo F2Fで、page-break-* との関連性について議論され、page-break-* と決定されました。プロパティを再利用し、カラム用の値は新しく定義して対処しようという話です。

Resolved: page-break-before, page-break-after: column to force column breaks, other values apply to column breaking as well as pages.

Minutes and Resolutions Tokyo F2F Thurs: Page-breaking, GCPM, Image-resolution, Multicol

It should also be noted that using the page-* propoerties to set preferences on columns is not ideal. However, introducing three new properties to describe column behavior seems excessive.

*

カラムのためだけにプロパティが増えるのは好ましくないという判断でしたが、反論が出たりや問題点が明らかになったりしました。

で、3つの提案が。

  • page-break-* を維持して、足りない値を追加する。
  • column-break-* を復活させ、page-break-* との関係について定義する。また、break-* という、どちらの値をもセットする新しいプロパティをショートハンドとして用意する。
  • break-*page-break-* のエイリアスとして定義する。

で、2つ目のが採用されました。

Resolved: Add three new column-breaking properties and shorthand to combine them with page-break properties per Melinda's email item 2.

Minutes and Resolutions 2009-04-29

しかーし。その後フランスで行われたF2Fでまたもやひっくりかえります。

Resolved: Introduce page-break-* properties as syntactic sugar for new break-*. Rationale: Adding column-breaking controls to page-break-* doesn't make much sense, but the WG wants to avoid introducing a second set of properties.

Minutes and Resolutions June 2009 F2F

page-break-*にカラム系の値が入るのはなんかアレなんだけど、全く別のセットとして定義するのは実装側に好まれなかったというのが理由です。

というわけで、3つ目っぽい決定がされました。CRを見てみましょうか。

Three new properties are introduced to allow column breaks to be described in the same properties as page breaks: ‘break-before’, ‘break-after’, and ‘break-inside’. These properties take the same values as ‘page-break-before’, ‘page-break-after’, and ‘page-break-inside[CSS21]. In addition, some new keyword values are added.

5. Column breaks

In addition, some new keyword values are added. とあるので、1つ目も含んだ感じですね。

さて、いつ実装されますかねえ。

12.17

State of the Browsable Web 2009: CSS3 Backgrounds & Borders

| 01:06

昨年ぐらいから活発になってきた印象を受けるBackgrounds & Bordersですが、CRが公開されました。

追いかけてなかったので、さっぱりです。

というわけで調べたりしました。時間かかった…

box-shadow のドロップ

大きなものからいきましょう。「えっ」という変更ですが、そうなっちゃいました。

Resolved: Drop box-shadow from CSS Backgrounds and Borders Level 3: work on box-shadow outside the module for the time being, possibly re-merge with draft later. Rationale: drop-shadows seem to need a lot more discussion, but the rest of the draft is ready to move on.

Minutes and Resolutions 2009-09-30

とはいえ、10月のLC時点で無くなっていたんですけどね。

なんでドロップされたかですが、他の機能は安定してきてるけど、ドロップシャドウはまだいろいろ話す事があるのでとりあえず別に作業するというそんな理由になります。再統合の可能性も高そうな書き方をしているので

その「いろいろ」ですが、ひとつはborder-imageとの関わりになります。2月のTeleconで、box-shadowborder-imageで上書きされないという仕様が決まったんですが、Brad Kemperがそれに反対したんですね。

Bradは前々からデザイナーという立場から特にこのモジュールに対してコミットしてた人で、その経緯もあってかその後Invited ExpertとしてCSS WGのメンバーになり、またこの仕様のEditorになりました。すごいですねー

話は戻って、David Hyattがborder-imageをマスクにしてはどうかという提案をして、議論が発展していきます。

Rather than suppressing the shadow, what about using the border-image as a mask when deciding how to draw the shadow? In theory it should be possible to intelligently draw a more complex shadow for a border-image object.

Re: Minutes and Resolutions 2009-02-04: box-shadow and border-image

とはいえ、これは「ドロップシャドウ」ではないところが難しいところなんですよね。

議論は続きますが結論が出ない状態が続きます。別に border-shadow という新しいプロパティを設けてはどうかという提案があったりもしました。

とまあ、そんな経緯でとりあえずドロップと。消極的な感じはするんですが、確かに根深い問題です。

現在はBradによるドロップシャドウの提案に話題が移ってますが、このモジュールのスコープ外のような気がするので省略。

ドロップシャドウはSVGのフィルタをCSSから使えるようにするという話との絡みもあるので、興味がわいたらもうちょっと調べる事にします。

ぜえぜえ。

borderborder-image

border というショートハンドがありますが、border-image との関わりが定義されていませんでした。こちらは border から border-image を指定できるように拡張することを行わないことと、ただ border によって border-image がリセットされることが決定されました。

後者には注意しないといけないかもですね。

border-image のサブプロパティ

fantasaiがCSS3.infoでとったサーベイ結果をふまえて、border-image のサブプロパティが導入されました。border-image はショートハンドになります。

追加されたプロパティはborder-image-source, border-image-slice, border-image-width, border-image-outset, border-image-repeat の5つ。結構多い事とそれらの関連を説明する必要があったためか、LCからは独立したセクションになりました。

ちょっと調べてみましたが、サブプロパティの実装はまだ始まっていないようです。あ、それと、border-image の使い方が 「border-image を利用したボックスデザイン」にてとても分かり易くまとめられています。

とまあ、全然ステータスという感じではないですが、気になったものをまとめてみました。Background系にまったく触れてないというね。

12.11

State of the Browsable Web 2009: CSS3 Namespaces

| 01:13

今回はXHTML以外のXMLや複合文書にCSSを書かない限りはお世話にならなそうなCSS3 Namespaceです。なのでBrowsable Webに入るかというとそうでもないような気がしますが、ちょっと面白い話題があったのでこだわらず行きましょう。

仕様の現時点でのステータスはCRですが、長年実装もあるモジュールです。2月にはImplementation Reportが作成され、PRへの準備が始まりました。

「各機能に対して2つ以上の実装」という要件を満たさないと基本的には勧告できない*1わけなんですが、ひとつだけそれを満たせないテストがありました。syntax-013.xmlです。そして、このテストについてDavid Hyattが質問を投げたんですね。

該当箇所は次の通り。style要素に、閉じられていない@namespace x "textなる宣言もどきがあります。

<style>
 t, t2, t3, t4, t5 { background:red }
</style>

<style id="a">@namespace x "test</style>
<script>
 document.getElementById("a").sheet.insertRule("x|t2 {background:lime }", 1)
</script>

<p><t2 xmlns="test">This sentence should have a green background.</t2></p>

A syntactically invalid @namespace rule (whether malformed or misplaced) must be ignored.* と仕様にあるので、これは無視されnamespaceの宣言が無効になるのではないかと。すなわちテストが誤りではないかとの指摘です。

ところが、これ仕様通りなんですね。

Unless the stylesheet processor is required to magically fix up the missing closing quote.

It is. See http://www.w3.org/TR/CSS21/syndata.html#parsing-errors the "Unexpected end of style sheet" bullet.

Re: Agenda+ CSS Namespaces implementation report

はい。見てみましょうか。

User agents must close all open constructs (for example: blocks, parentheses, brackets, rules, strings, and comments) at the end of the style sheet. For example:

  @media screen {
    p:before { content: 'Hello

would be treated the same as:

  @media screen {
    p:before { content: 'Hello'; }
  }

in a conformant UA.

Rules for handling parsing errors ― Unexpected end of style sheet (CSS 2.1)

なあんと。スタイルシートの終わりに達してもまだ何かが開いた状態の場合は、それを閉じるエラー処理が定義されてるんですねー。そういえばそんなのありましたねー

というわけで、指摘されていたstyle要素は@namespace x "textのみで終了してるので、そこでエラー処理が働いて@namespaceが解釈されるようになります。こういう話だったんですね。

という感じで、そういうことになるようです。むつかしいですねー

で、いろいろ手の早いWebKitは早速修正しましたとさ。

ちゃんちゃん。CSS 2.1の話になってしまった感がありますが、まあ。

*1:実はSHOULDだったりする

12.4

State of the Browsable Web 2009: CSS3 Color

| 01:42

今回はCSS3 Colorです。

さて、他に比べて進んでたはずのCSS3 Colorですが、F2Fでちょっとした動きがありました。

Resolved: Drop section 3.1.1 from CSS3 Color.

Resolved: Add color-correction property with values default and srgb where default is UA-defined and srgb corrects untagged images to sRGB.

See also David Baron's follow-up message proposing something different.

Minutes and Resolutions November F2F TPAC Santa Clara

ガンマ補正に関するセクションが消え、そして、指定無しの画像やCSSの色に色空間を指定するcolor-correctionなるプロパティを追加することが決定されたんですね。ちなみに、WebKitではすでに実装が始まっていたりします。

とはいえ、新しいプロパティを加えるとなるとWDに差し戻されるので、また時間がかかります。セレクタがPRになり、何もなければSnapshotをCRに持っていけるというそんな良いタイミングなのに、これはあまり賢くないわけです。

そんなこともあり、昨日行われたTeleconでcolor-correctionをどうするか議論が行われました。

Resolved: Publish CSS3 Color as CR or PR without proposed color-correction addition.

Minutes and Resolutions 2009-12-02

というわけで、あっさり覆りました。color-correctionはCSS4に持ち越すことになりそうです。

編集が必要なことや実装レポートの作成がまだのようで、CRかPRになるかは分かりません。とはいえ、WDに逆戻りになることはなくてよかったなと。

11.30

State of the Browsable Web 2009: Selectors Level 3

| 23:53

CSS3でまとめようかと考えたのですが、いつになっても書き終わらない気がしてこわいので小出しにします。というわけでセレクタです。

昨年まではColor, Namespacesに続いて3番目くらいの進捗だったセレクタですが、ここにきてCSS 2.1を上回るスピードで進み、現在はなんとPRを待つ段階にまできています。

Resolved: Advance to Proposed Recommendation for Selectors Level 3. [Disposition of Comments] [Implementation Reports]

Minutes and Resolutions November F2F TPAC Santa Clara

::selectionが省かれたほど大きな変更はありませんが、細かなところが明確になっていますね。あと、Impl. Reportsによると現時点で一番進んでるのはGeckoになるのでしょうかね。

そういえば、ひとつ面白いのがありました。IE TeamでCSS関連をやっているSylvain Galineauが投げた、疑似クラスを連続させた時のspecificityについてです。

Should repeated instances of a pseudo-class be ignored by the parser ? Or do they increase the selector's specificity ? (See testcase below).

The interoperable behavior today is the latter: Opera, Firefox and Safari all increase the selector's specificity. IE ignores the repeats and gives E:first-child the same specificity as E:first-child:first-child. Given that a) no such exceptions are noted in the spec and b) the author has explicitly repeated the pseudo-class, I expect this to be a bug for IE. I was wondering if this was originally intended, and whether/when it was used in practice.

Increasing specificity through pseudo-class repetition

「IEのバグだと思ってる」って中の人が言ってるっていう。素敵ですね。というわけであまりないとは思いますが、疑似クラスを重ねたい方はお気をつけ下さい。

話は戻って、PRですが、すでにTimBLによる承認は得られているようです。が、But we cannot advance to Rec before CSS 2.1 is PR.とあるように、CSS 2.1のPRを待たないと勧告されません。CSS 2.1への依存があるからなんでしょうが、せつないですね。

いつ終わるかな、これ。。

追記 (2009-12-16): PRが公開されました。 CSS 2.1がPRになるまでRECにならないとか、そういうのは変わりません。

State of the Browsable Web 2009: CSS 2.1

| 20:40

2009年11月下旬時点の、CSS 2.1のステータスです。2008年12月のもあります。

まず、今年の振り返りからいきましょう。2007年に何度目かのCRになったCSS 2.1ですが、4月と9月にそのCRが更新されました。

更新の理由ですが、4月のはErrataを空にしたかったというもの。9月のは、Media Queriesとの絡みで文法の修正が必要だったからになります。

さて、今後の予定はどうなっているのかというと、Bert Bosとfantasaiが9月に出したメールが参考になります。

The next publication of CSS 2.1 might be a brief return to a "last call" working draft, followed by the long awaited Proposed Recommendation. But no date has been set for that.

Update of the CR of CSS 2.1

My understanding is that the major items holding up CSS 2.1 progress have been creation of interoperable implementations and creation of test suites. Do those continue to be issues for progress of CSS 2.1?

Yes, that is exactly the holdup for CSS 2.1. The spec is quite stable, and we're mostly maintaining it via an errata-like process at this point. But to become a full W3C Recommendation it does need a test suite and two interoperable implementations, and we don't have those yet. (And, like pretty much anything else in the software world, people do keep finding errors in the spec.)

Re: Status of CSS 2.1 and Print Profiles

「たぶん一度Last Callに戻って、その後Proposed Recommendationになる」「いつになるか分からないけど、安定はしてる」と。いつもの通りですね。

とはいえ、4月のCR更新以降もIssues Listには項目が増え続けてます。

これらはどう対処するのでしょうか。エラーのない仕様なんてものはないわけで、どこかで打ち切って勧告した後に対処するほうが現実的でしょう。

さてどこで切るかですが、テストのスケジュールがあるのでそこから考える事ができそうです。

Resolved: New (more realistic) deadline for test submission for CSS2.1 is 15 Jan 2010. After this deadline submitted tests will be accepted for interop testing, but not for the CR->PR test reports.

Resolved: After 15 Jan 2010, each vendor must run all submitted tests in the test suite and report back on any problems with the tests. The deadline for the first iteration of this is 15 February 2010. The deadline for the second iteration is 15 March 2010. After this audit step we will start building implementation reports.

CSS2.1 Testing Roadmap / Minutes and Resolutions 2009-09-23

2010年1月15日までにテストを集めて、1/15~2/15, 2/15~3/15の期間で計2回テストを行うと。その後Implementation reportを作成し、PRに行くとか行かないとかそういう判断をすると。

先月のF2Fの段階では“Still on track wrt roadmap”とのことなので、まだ遅れてはいないようです。現CSSWGの活動期限が2010年11月末なので、それまでになんとかしたいのでしょう。

予想ですが、テストでカバーできてないIssueがある場合は、それらをErrataとして勧告には影響しないものとして扱うこともあるのかなと思います。あと、interoperabilityのない定義は“undefined in level 2”とでもして、CSS3にまわすことも増えるのではないかなと。これ以上進行がブロックされるのは、建設的ではないですからね。。

ぜえぜえ。続くよ。

|
Contact: @vant / lepetitcroissant@gmail.com.