HTMLのabbr
要素に指定されたtitle
属性を、title
属性が省略された他のabbr
要素へばらまく小さなスクリプトを必要に迫られて書いていた。名前はabbrとspreadを混ぜてAbbreadとした。
abbr
要素を使う場合、最初のそれだけにtitle
属性を付けるなどということをよくやる。仕様によるとこのあたりの書き方については以下の一文で触れられている。
Providing an expansion in a
title
attribute once will not necessarily cause otherabbr
elements in the same document with the same contents but without atitle
attribute to behave as if they had the same expansion. (参考訳:title
属性を使って完全表記を一度提供したとしても、同じ文書内の同じ内容を持つabbr
要素がtitle
属性を持たない場合にあたかも同じ完全表記を持つように振る舞ってくれるとは限らない。)
つまり、最初のabbr
要素だけにtitle
属性を書くといった省略した書き方は推奨されていない。「Every abbr
element is independent」とも続けて書いてある通り、それぞれは独立していると考えるべきなわけだ。
とはいうもののいちいち書いていたら頭がおかしくなることは確実だ。だからといってabbr
要素を使わないという選択も微妙なので、ブラウザーに頑張ってもらうだけで良いことにした。
この小さなライブラリーをウェブページに読み込むと、
<p><abbr title="HyperText Markup Language">HTML</abbr> is dead, long live <abbr>HTML</abbr>!</p>
が、
<p><abbr title="HyperText Markup Language">HTML</abbr> is dead, long live <abbr title="HyperText Markup Language">HTML</abbr>!</p>
となる。
こういったtitle
要素をばらまくというだけでなく、もう一歩踏み込んだものがブラウザーの機能としてあってもよさそうだ、という考えが頭をかすめた。abbr
やdfn
要素などの既存のHTMLマークアップを使って、そのウェブページ内でのみ機能する小さな辞書機能を構築できたりすると、技術文書などでは非常に有用だろう。
ブラウザー・アプリや拡張でやると、そういった技術文書のウェブサイトを閲覧する際に特定のアプリや拡張が必要になってしまう(かもしれない)ので、別の問題が発生してしまいそうだ。とはいうものの日々必要とされる機能であるとも思えない。やはり必要になったら自分たちででっち上げるのが無難そうだ。