真偽値属性

真偽値属性

[1] <option selected>selected のように、 指定されていれば真、指定されていなければ偽である属性を、真偽値属性 (boolean attribute) と呼びます。

[2] これは、 SGML 的には、列挙値属性属性名vi が省略できる (ことがある) ことを利用しています。

>>1 の例は、 DTD では、 <!ATTLIST option selected (selected) #IMPLIED> と定義されます。 マークの最小化を使わないと <option selected="selected"> になります。

[3] XML のように属性名が省略できない時は、 >>1 のような表現はできず、 >>2 のように書かなければなりません。ですから、真偽値属性はあまり有り難味がありません。 むしろ奇妙な感じもしますから、他の属性の指定の仕方を検討した方がいいかもしれません。

[4] ところで真偽値属性って、 HTML の用語なのでしょうか、 それとも元から SGML の世界で使われていた用語でしょうか。 SGML でも列挙型属性を使って属性の指定を簡単化するのはよくやりますが、選択肢一つだけで真偽になるのはあまり無い気がします。 (気のせい?)

[5] border=border 属性のように、真偽値属性だけど border=<length> のせいで無理矢理 frame=border にしちゃったものもあったりします。 (この場合非 SGML 的に border [ = <length> ] と定義しちゃったのか。その辺の時系列順は要調査。)

[6] Web Forms 2.0 で規定されているブール型属性に関しては、列挙型の項もご覧下さい。

[10] IRC logs: freenode / #whatwg / 20100111 ( 版) <http://krijnhoetmer.nl/irc-logs/whatwg/20100111#l-392>

「boolean」という名称が属性値が true/false であるかのような誤解を招いているきらいはあれど、 より良い名前がないので改称はできない。

大文字と小文字

[7] ブール型属性属性値は、大文字小文字を区別しません。 ASCII大文字・小文字不区別です。 Web Applications 1.0

[8] (互換性大文字・小文字不区別などではなく) ASCII大文字・小文字不区別である、という性質は、 実質的には「i」が属性名に入っている以下の HTML 属性にのみ影響があります。

[9] 22個中8個が「i」を含むということで、意外と多いですね。

[11] HTML5 に適合しない属性だと更に:

[12] HTML5 Revision Tracker ( 版) <http://html5.org/tools/web-apps-tracker?from=5021&to=5022>

[13] [whatwg] Serialization of boolean content attributes ( 版) <http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2010-August/027779.html>

[14] Packaged Web Apps (Widgets) - Packaging and XML Configuration (Second Edition) ( ( 版)) <http://w3c.github.com/packed-webapps/packaging/#boolean-attribute>

[15] XSLT and XQuery Serialization 3.0 ( ( 版)) <http://www.w3.org/TR/xslt-xquery-serialization-3/#XHTMLBOOLEANS>

[16] HTML Design Notebook () <https://www.w3.org/People/Connolly/drafts/html-design.html>

Mosaic 2.4

broken comment parsing -- thinks comments end with >, rather than the actual-->

re-introduced SHORTTAG features, ala <IMG ISMAP> rather than <IMG feature="ismap">