SVGの仕様はコンパクト

前置き

以前、2007-09-26の記事でSVGの仕様を目的別に、4つに分けたほうがいいんじゃないかと書きました。

  • 静止画像や地図用のSVG
  • SVGアニメーション
  • SVGフォント
  • SVGエフェクト

でも、
http://malblue.tumblr.com/post/20107617
のようなことはないような気がします。SVGの仕様は比較的コンパクトだと思います。というのは、比べてみると、
SVG1.1の仕様は3MB近くに対して、HTML5(現時点ではWD)の仕様のサイズは2MBあります。さらに、HTML4.0の仕様も信じられないほど長いです。
http://www.w3.org/TR/2003/REC-SVG11-20030114/
http://www.whatwg.org/specs/web-apps/current-work/
http://www.y-adagio.com/public/standards/tr_html4/toc.html
しかし、短いはずのSVGの仕様を読みづらく感じるのはどうしてなのでしょうか?その原因を探ってみましょう。

1,プロ向けだから

まず、上記の4項目を、プロが使うというAdobe社の製品に照らし合わせて考えて見ます。

これらの製品を統合して初めて、SVG1.1すべてを網羅した作成ソフトができあがります。分野の違う業界の要求をのんだ結果が、SVG1.1の仕様なのです。ですから、仕様を読むには、さまざまな分野の知識が要求されます。

私の考え

おそらく仕事でSVGを使うことになっても、svgとpathとg要素、それにlinearGradientとradaialGradientとstop要素だけで十分だと思います。もともと、SVGは拡張縮小が可能なXMLなので、縮小したサブセットの仕様を、ブラウザなどの会社が独自に作ればいいだけの話です。

2,数学をわかりやすく説明しようとするから

「学問(幾何学)に王道なし」の言葉通り、数学などの知識を解説するのは簡単なことではありません。仕様ではそれを行うことに、時間を割いています。

私の考え

写像をわかりやすく説明するのは非常にありがたいのです。ですが、大事なのは、写像を理解させることではなくて、「SVGのtransform属性を理解させること」ですから、わかりにくくても、簡単な説明で済ますべきでしょう。わからない人がいれば、解説ページを後で載せるという方法があります。

3,DOMとスタイルシートの拡張

多くを語りません。SVG1.1ではDOM level2(と3)とCSS level2を独自に拡張しています。そのために、拡張の説明に追われています。これはSVG1.1に限ったことではなく、どんな会社でも見られる現象です。

私の考え

私もSIEをつくるときは、DOMの拡張、例えば「innerSVG」とかいいなあ、という誘惑に負けそうになります。やるべきことは「要求された仕様の拡張」ではなくて「要求された仕様のサポート」なのです。