追記のマークアップ

一度公開した記事に対して後から追記した事を明示するための ins 要素と、後から削除した事を明示するための del 要素がある。これらはちょっと特殊で、マークアップの仕方によってインライン要素になったりブロック要素になったりして、例えば p 要素の外側に記述すればブロック要素、内側に記述すればインライン要素になる。

んで、当サイトでは del (削除)と ins (挿入)のセットではなくて単純に追記だけの場合、ins 要素をブロック要素としてマークアップしていて、「追記」という文字と datetime 属性(修正時刻)の内容を CSS の before 疑似要素と content プロパティで生成している。(CSS コードは「contentプロパティの文字化け」を参照)

ブロック要素として追記した部分

これ思ったんだけど、「追記」という文字を生成しちゃってるのってあんまよろしくないのかなぁと。もちろん、 IE が before 疑似要素に対応していないってのもあるんだけど、それよりも全文配信している Atom を購読している閲覧者なんかが更新された Feed をアグリゲーターで表示しても、どこが追記されたんだか分かんねぇよなあ。

datetime 属性は今のまま content プロパティで生成させるとしても、「追記」という文字はちゃんと記述した方が良いかも知れないな。まぁ、実際に「追記」という文字をどうマークアップするのがベストなのか悩んでいたりするんだけど。Hn タグ?うーん、違うな。

この記事についての情報

似た内容の記事

この記事に対するトラックバック

トラックバックURL: http://www.lucky-bag.com/mt/mt-tb.cgi/136

Comments

真琴 said:

アグリゲータの表示のために「追記」という言葉を本文中に入れてしまうのは解決方法としてはスマートじゃないなあと思います。エスケープされているとはいえ、 <ins>~</ins> で追記部分をマークアップして、追記であることを明示しているのには変わりないのですから、そのへんをどう解釈してどうレンダリングするかというのは各アグリゲータの仕事だと思います。
Sage なんかは Hn や a や ul なんかはちゃんとそれらしくレンダリングしていますし。

e-luck said:

>どう解釈してどうレンダリングするかというのは各アグリゲータの仕事だと思います。

うーん、確かに真琴 さんの意見は全くその通りだし、自分自身も内心そう思ってるんで、ちょっとジレンマに陥っていたりして。なんで、実際に物理マークアップするかってのはちと微妙だったりもするんですけどね。

ただ、アグリゲータの種類や数ってブラウザに比べれば遙かに多いんで、アグリゲータ側の対応を待つのみで、閲覧者にとってあまりよろしくない状況を放置していても良いのかなあって思ったりもするのです。

真琴 said:

先述の意見はある種の理想論なので、アグリゲータの種類や現状と、閲覧者への配慮を鑑みていないんですよね。そこで「追記」という文字列を書く前提で、マークアップをどうするかって現実論になるわけですが、やはり Hn か、もしくは dt ( 追記部分全体を dl で囲んだとして ) あたりかなあと思いました。もしくは、現状の実装に合わせて暫定的に書いているので、 span で囲んで適当な class を割り振るか。絶対的な正解が無いから難しいですよね……。

e-luck said:

あ、定義リストは考えていました:-)
つうか、困ったときは定義リストに逃げる悪しき考えが僕にはあったりして。
所謂、原理主義者と言われる人達からは責められそうですけど。

>絶対的な正解が無いから難しいですよね……。
いや、ホントそうですよね。