(覚え書き) altテキストやtitleテキスト内で改行するべきかしないべきか

内容量の多い代替テキストは一行に収めていますか? それともデザインデータからコピーアンドペーストしたまま(あるいは意図的に)複数行で収めていますか?

altテキストやtitleテキストによるツールチップには改行を持たせられるとなんとなく知っていたんですが、いままで何らかの理由をもって改行を削除して一行に収めていました。根拠は忘れたのですがそういうものだと思いそうしてきました。しかしながらそれではいかんと急に根拠が気になって調べてみたところ、以下の記事にたどり着きました。

■title 属性のツールチップ内で改行
http://www2.u-netsurf.ne.jp/~alt/mt/archives/20031211_1555.html

2種類の方法を使ったWinIEでの改行対応方法と、title属性はCDATAなのでブラウザは改行しないのが正しい解釈、という記事なんですが、alt属性やtitle属性がなぜCDATAなのか根拠がはっきりおらず引っかかてしまいました。ので仕様書をあさってみることにしました。恥ずかしい話、業界で2年以上働いているんですがあまり参照してません。ので、見方が分からなかったんですが… とりあえずDTD見て検索してみてそれらしきものをあたってみることにしてみました。

■HTML4.01 Strict DTD
http://www.w3.org/TR/1999/REC-html401-19991224/sgml/dtd.html
■XHTML1.0 Strict DTD
http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-strict.dtd

<!ENTITY % coreattrs
 title       %Text;         #IMPLIED  -- advisory title --"
<!ELEMENT IMG - O EMPTY                -- Embedded image -->
<!ATTLIST IMG
 alt         %Text;         #REQUIRED -- short description --

属性集合(ほぼすべての属性)に任意でtitle属性使えますよ、というのと、 IMG要素にalt属性を使えますよ、という記述にみえます。書式が%Text;だろうと思います。邦訳では「DTDで%Text;と示される多くの属性値は、「人間が読んで解る」という意味の普通のテキストを示す。 属性に関する概説は、 属性に関する解説的記述の項を参照のこと。」とのことでした。あれ、なんでも入力していい? CDATAなんてどこにもないじゃないかと思ってたんですが、以下にありました。

 <!ENTITY % Text "CDATA">

%TextはCDATAですよ、ということかと思います。CDATAは文書文字集合中の任意の文字列なので、結論、titleやaltはCDATAで改行などを行っても勧告上では無視されるようになっているということが分かりました。http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-strict.dtd

ご要望等に応じてというのもありますし改行しておくのは間違った記述方法ではありません。ただ改行を削除するのがUAの正しい解釈ですから、あらかじめ改行を詰めた体裁で最適化し、情報がやり取りされるべきなのが健全なのだと考えます。改行するべきしないべきでいうとしないべきでしょうか。少し根拠を得られてちょっとなるほどでした。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です