[HTML5 入門]実制作で迷わない為のマークアップ例:会話文
この記事は約9分ぐらいで読めます
文書構造を意識したマークアップ例
今回から始める不定期連載です。HTMLのコーディングのやり方はリファレンスサイト等で例文を用いて行われることが多いですが、どうも抽象的だったり、実際の運用に即していない印象のものが多く見られるように感じています。
仕様に関する解説やコードの書き方も、遠まわしだったり、「だから結局どう書けばいいの?」という感は拭えません。また、ドキュメント自体が書かれた地域の文化を基準にしており、我々日本のweb制作現場の実際にそぐわない場合もありますよね。
こういったことについて、一つ一つ実際の事例や具体的な使われ方を挙げながらHTML、CSSのコーディングについて解説したいと思います。
また、この連載にはブログの記事と同じく私個人のHTML5のマークアップに対する考え方が強く織り交ぜられることと思います。もし見解の相違などありましたらご意見頂きたいと考えています。
シンプルな二人の会話文のマークアップ
ということで今回は会話文について。
会話文は通常単なる段落である
まず、会話文というものを文章の中でどう表現出来るか考えてみましょう。例えばAさんとBさんが喋っている場合
「今日、雨が降らないと良いですね」とAさんが言うと、「彼女がいるので、残念ながらそれは叶わないでしょう」とBさんが答えた。
「今日、雨が降らないと良いですね」
Aさんが言うと
「彼女がいるので、残念ながらそれは叶わないでしょう」
とBさんが答えた。
A「今日、雨が降らないと良いですね」
B「彼女がいるので、残念ながらそれは叶わないでしょう」
といったような書き方が考えられます。
いずれの場合も、この会話はコンテンツ内の単なる文章であり、p
タグでマークアップされることに違和感はないでしょう。
三番目の書き方が少し特殊ですね。この場合段落内の通常のテキストと話者の名前は文章表現上の役割が違うので、b
タグで囲みます。
アイコン付きの会話文のマークアップ
次に、似顔絵やアバター等のアイコン等で話者を表現する場合のマークアップです。
アイコンのみ
アイコンのみで何かを表す場合、それはアイコン自体がそれの名前と代替されるものであるべきだと考えます。画像が表示されない場合はalt
属性でわかるよう、かつ表示されていてもtitle
属性のツールチップ等でそれが何なのかを表現します。
話者のアイコンのマークアップは、具体的には
b
要素の中にimg
要素を入れるb
要素に背景画像をつける
といったパターンが考えられます。
アイコン+名前
次に、話者をアイコンと名前の両方で表現する場合。
b
要素に背景画像をつけ、テキストで名前を表記するb
要素の中に擬似要素で何らかのアイコンを表示し、テキストで名前を表記する
といった方法が考えられます。
どちらの場合もアイコン自体は意味を持たず、テキストの情報をより伝達しやすくするためのものになります。webフォントを使ったアイコンであったりも使えますね。
アイコンのみで伝える場合とそうでない場合の差
アイコンは上記のように、それだけで文字の代わりを果たすタイプのものと、文字の意味することを修飾するものとがあると思います。この話は昨晩の記事[CSS]擬似要素の実用的な使用用途のまとめでも触れていますが、別途記事を書く予定です。引っ張ってますけどちょっと長い説明が必要なのでw
Q&Aのマークアップ
Q&Aは一見会話のようではありますが、質問文という項目に対する回答という記述を述べているのでdl
タグでマークアップされるのが相応しいでしょう。
ただし会話文、Q&A、この二つを分けているのはあくまで文書中の扱われ方です。Q&Aは大抵サイトやサービスの質問ページで使われるものでそれぞれの項目は一つ一つ別々の事例を扱っています。例えば、先生と生徒の質問と答えで話が進行していく文章などでは、内容が質問であっても会話と見做すのが自然でしょう。
全体での文脈においてどう扱われているかが重要です。
他にも実際に考えられるパターンとしては質問文が見出しで回答が内容、といった構成も見られると思いますし、それでも問題ないと思います。
関連するマークアップの話し
dlタグ
以前は会話文にdl
タグがよく用いられていました。これはdl
要素が定義リストであることに対し、それに話者とその発言というものを当てはめた拡大解釈的な使い方でした。
HTML5に於いてdl
要素は項目に対する記述のリストといった意味に変更され、意味も若干拡張されています。しかしそうであっても会話はリストではありませんし、依然このリストに当てはめるにふさわしいものではありません。
dialogタグ
私はこのタグの存在を知った時非常に喜んだものですけど、2011年あたりに仕様から消え去りました。その後、dialog
はdialogue(会話)を表すものからdialogue(機械からのダイアログ)といった意味に変わって復活しました。と言うより、すでに別物ですw このdialog
はHTML5.1に盛り込まれています。
終わりに
いかがだったでしょうか。ここまで難しく考えなくても別にコーディングは出来るんですけど…でもマークアップするかを迷う時ってありますよね。そういう時、この場合はこう、この場合はこう、というような見本としてこの記事が成立すればいいなと思っています!★
好評だったら続けていきたいですね!
追記
後で気付いたんですが、この記事で言いたいのは文書構造的に正しいマークアップを出来るかって話だったので言葉の表現なんかを変更しました。セマンティックを語るにはまだまだ知識不足ですw