属性に空の値を指定する時は、例えばalt=""などと書く。実は仕様のHTML文法にはもうひとつ書き方が用意されており、それはaltとのみ書くという形のものだ。確かにこう書けるし、真偽値を取る属性で属性のみ書く方法もこの文法規定がベースになっている。少し前に読んだalt属性の書き方ガイドといったような記事ではそのように触れられている。しかし僕は属性のみを書くのは真偽値を取る属性のみに限定した方が良いように考えている。

なぜなら空の値を指定する時に属性のみ書けば良いという文法を知る人が多分ほとんどいないだろうからだ。裏を返すとchecked="checked"checkedと略せるという誤解した知識で憶えた人が多いということで、実際僕もそうだった。確かに誤解なのだけど、もう広まりきってしまった誤解なので、それはそういうものとして触れない方が良いんじゃないかと思う。

そうでないとaltとのみ書けば良いという半端な知識から、まさかのalt="alt"といった間違いに着地したりしてしまいそうだ。属性値のみを書くパターンは真偽値を取る属性のみに限り、それ以外では明示的に""を指定してやるのがわかりやすい。仕様の誤解が修正されないという難点はあるけれども。