帰ってきたappearance(css-ui-4とか)

CSS Basic User Interface Module Level 4のFirst Public Working Draftが日本時間の今日の未明に発行された(他にも2つのドラフトが同時にアナウンスされているがそれはひとまず置く)。このFPWDでは、2004年のCSS3-UI勧告候補に定義されていたappearanceが11年振りに返ってきた。しかし、値には以前とはautononeしか定義されていない。なぜこうなったのか、注として以下のように書かれている。

Note: This specification intentionally refrains from making the appearance of all possible form controls and sub-controls available as values, as had previously been attempted by earlier proposals for this property and by several UA vendors in experimental implementations.

Experience has shown that such a list would be very long and not practical to maintain, and UAs would need to add non-standard values to account for the behavior of non-standard pseudo-elements sometimes used to implement form controls.

Moreover, many values of such an enumeration only make sense on a single element or pseudo-element, and are never used outside of the UA stylesheet. Instead, this specification only provides auto, none.

UAs cannot therefore use the appearance property in the UA stylesheet to give each control is native look and feel, and must use appearance:auto instead.

(改行は筆者による。)

8.1. Switching appearance - CSS Basic User Interface Module Level 4

拙訳:注:このプロパティーに対する以前の提案によって、および実験的な実装における複数のユーザーエージェントベンダーによって以前に試みられていたように、この仕様は意図的に、値として利用可能なすべての可能なフォームのコントロールおよびサブコントロールの外観の作成を控える。

経験は、そのようなリストが非常に長くそして維持することが実用的でないことを示しており、ユーザーエージェントは、フォームコントロールを実装するために時には使用される非標準の擬似要素の挙動を説明するために非標準の値を追加する必要がある。

そのうえ、そのような列挙の多くの値は、単一の要素または擬似要素のみに意味をなし、ユーザーエージェントスタイルシートの外で使用されることはない。代わりに、この仕様はauto、noneのみを提供する。

従ってユーザーエージェントは、ネイティヴなルックアンドフィールであるそれぞれのコントロールを与えるためにユーザーエージェントスタイルシートでappearanceプロパティーを使用し、appearance:autoを代わりに使用しなければならない。



という具合に、やや奥歯にものが詰まった感もあるけれども、ともかくウェブで特定の外観を与えるためにこのプロパティーを使用しない(というかできない)、ということが言えるだろう。


さて、このcss-ui-4だけども、目次の項目に反して、その多くが見出しとイシューしかないのに気付いただろうか。これは1章の注にあるように、現時点でcss-ui-3の策定は完了しておらず、今後変更がありうる。従ってcss-ui-4で追加した箇所のみ記述している差分仕様(delta specificationとかdiff specと呼ばれている)とし、策定が終わってからcss-ui-3に追加される、という方針に今のところなっている(同日に発行されたCSS Text Module Level 4も同じような構造)。


CSS Round Display Level 1はその名の通り(主に時計を意識した)円形の表示をさせる仕様となっている。この仕様は、

  • Media Queries [MEDIAQUERIES-4]
  • CSS Shapes [CSS-SHAPES-1]
  • Borders [CSS3-BORDER]
  • Positioned Layout [CSS3-POSITIONING]

を拡張するとある。私の記憶ではLG ElectronicsのエディターによるCSSの仕様策定は初めてだった気がするけれども、この仕様がどうなっていくのか暖かく見守っていきたい。