HTML Living Standardにおける強調系要素
- 公開日: 2021/10/23
- 更新日: 2021/10/23
概要
Webページを記述するための言語であるHTMLは、概ねHTML4系、XHTML、HTML5系の3系統から成っている。
HTML4は、それまで視覚面での拡張を続けてきたブラウザ独自拡張のHTML、及びその独自拡張を取り込んだHTML3.2に対して「HTMLは専ら文書の構造を定義し、見た目はスタイルシートを使うべき」というコンセプトに基づいて設計された。ただし、互換性の為HTML3.2の上位互換となっている。
XHTMLはそれまでSGMLベースだったHTMLをXMLベースとしたもので拡張可能となっている。ただし、標準的に使用される要素の意味はHTML4と同じとのこと。
HTML5及びその後継規格であるHTML Living Standardは、HTML4に対して要素の追加・廃止、非推奨の解除等が行われており、それまで装飾用の要素とされていたb、i等についても装飾以外の意味が与えれられている。
ということで、これらの要素についてHTML4.01とLiving Standard(2021年10月22日版)とを比較してみた次第。
em要素
HTML4.01では単に強調を示す要素となっている。これに対してLiving Standardでは「stress emphasis」と定義されており、読み上げる際に強く発音するような単語やフレーズに対して使用し、それによって文のニュアンスを変化させる。複数のem要素を入れ子にすることでより強い強調とすることができる。"Cats are cute animals."というフレーズの各単語(或いはフレーズ全体)にem要素を適用した際にどのように意味が変わるのかが例示されている。
<p><em>Cats</em>are cute animals.</p> これは「何が可愛いのか」が議題となっている場合、例えば「犬は可愛い動物だね」にたいする返信であることが暗喩される。和訳するなら『猫こそ可愛い動物だよ』かな。
<p>Cats <em>are</em> cute animals.</p> 動詞が強調されている場合はその文が正しいことを意図する。この場合「猫は可愛くない」に対して『猫は可愛いよ』と返すような使い方。
<p>Cats are <em>cute</em> animals.</p> 形容詞が強調されている場合は、それを重ねて主張したいというニュアンスを持つ。この場合は「猫は普通の動物だね」に対して『猫は「可愛い」動物だよ』と返すようなイメージ。
<p>Cats are cute <em>animals</em>.</p> これは例えば「猫は植物だ」という発言に対して『猫は可愛い「動物」だよ』と返すようなイメージ。
<p><em>Cats are cute animals!</em></p> このように文全体を強調している場合は、それが攻撃的なフレーズであるというニュアンスを持つ。このような場合、しばしば感嘆符を併用する。
<p><em>Cats are <em>cute</em> animals!</em></p> このように攻撃的なフレーズの中でさらに可愛いことを強調したい場合は入れ子にすることができる。
日本語の文脈で使用する場合、カギカッコで囲うようなスタイルシートを適用するのが良さそう。
なお、強調される語やフレーズが重要であることを示すものではなく、そのような場合はstrong要素が推奨される。
strong要素
HTML4.01ではemより強い強調を示す要素となっている。Living Standardでは「そこが重要・深刻・緊急であることを示す」ものとされている。
small要素
HTML4.01ではサイズの小さいフォントで示される部分を指すが、Living Standardではいわゆるsmall print、つまり契約書などでしばしば小さな文字で記述される、制限事項などを示す際に使用される。反強調として使用してはならない。強調では無いことを示すならそれ以外の部分にemやstrongを適用する。
なお、Living Standardではbig要素は廃止されている。
s要素
HTML4.01では打ち消し線を付与される部分を指し、非推奨の要素だった。Living Standardではその箇所が既に適用外であることを示すものとして使用される。例えば商品の価格を値下げした場合に、値下げする前の価格にs要素を適用する。
HTML4.01では同義の要素としてstrikeがあったが、こちらはLiving Standardでは廃止。
abbr要素
HTML4.01では頭字語にacronym要素を、それ以外の略語にabbr要素を用いていたが、Living Standardではacronym要素は廃止されabbr要素に統合された。
sub、sup要素
下付き、上付き文字として表現であり、数学、化学式、フランス語の略語等それ自体に特別な意味を持つ場合に使用され、見栄えの為に使用するものではない。HTML4.01ではshouldであるが、Living Standardではmustである。
i要素
HTML4.01ではイタリック体を示すものだったが、Living Standardでは他の箇所とは異なる声調で発音されるような部分を示す。例えば学名、技術用語、他の言語によるイディオムなど。或いは夢の内容と現実とを併記する場合に、夢である部分にi要素を適用する。
b要素
HTML4.01ではボールド体を示すものだったが、Living Standardでは「重要ではないが、実用上の理由から他の文章から目立たせたいようなキーワード」に対して適用される。例えば、テキストアドベンチャーゲームのキーワードや、ニュース記事の冒頭部分に適用する。
u要素
HTML4.01では下線を示すものだったが、Living Standardでは中国語の文章中で固有名詞を指す場合や、ミススペルを示す際等に使用される。HTML4.01では非推奨要素。
mark要素
HTML4.01には無い要素。文書作成者とは異なるものが何らかの強調を行いたい場合に用いる。例えば引用された文章中で、引用者が注目している語、或いは検索結果中に検索キーワードを示す場合、プログラムコードの文法チェック結果において検出された間違いを示す場合などに使用される。
data要素
HTML4.01には無い要素。それが数値等のデータであることを示す。value属性でコンピュータ等に読み取ってもらいたい値を指定する(必須)。例えば<data value="8">Eight</data>。
time要素
HTML4.01には無い要素。それが日時やタイムゾーンであることを示す。コンピュータ等で解釈可能な形式の値をdatetime属性を指定することができる。datetime属性を省略した場合は、time要素が指す内容自体が解釈可能でなくてはならない。以下に解釈可能な形式を列挙する。
YYYY-MM形式の「月」: 例えば<time>2011-11</time>
YYYY-MM-DD形式の「日」: 例えば<time>2011-11-18</time>
MM-DD形式の「日」: 例えば<time>11-18</time>
HH:MM、HH:MM:SS、HH:MM:SS.ミリ秒形式の時刻: 例えば <time>14:54</time> <time>14:54:39</time> <time>14:54:39.929</time>
YYYY-MM-DD形式の「日」と時刻とを"T"又はスペースで区切った日時
UTCタイムゾーンであることを示す文字Z: <time>Z</time>
±HHMM又は±HH:MM形式のタイムゾーン
日時にタイムゾーンを追加したもの: 例えば <time>2011-11-18 14:54:39.929+00:00</time>
年W週表記: 例えば <time>2011W47</time>
YYYY形式(0000は不可。5文字以上は可)の「年」: 例えば <time>2011</time>
"P[日数]DT[時]H[分]M[秒(小数指定可)S"形式の期間情報: 例えば <time>PT4H18M3S</time> (日数省略)
"[週数]w [日数]d [時]h [分]m [秒(小数可)]s"形式の期間情報。wdhmsは大文字可。例えば: <time>4h 18m 3s</time> (週及び日数省略)
br要素
HTML4.01、Living Standard共に改行を示すものだが、Living Standardでは改行それ自体が意味を持つ場合(詩文や住所等)にのみ使用可能。
wbr要素
HTML4.01には無い要素。見えないが単語区切りがあることを検索エンジン等に示す為に使用される。例えば"there<wbr>is<wbr>no<wbr>way<wbr>you<wbr>are<wbr>ever<wbr>going<wbr>to<wbr>catch<wbr>me"! のような使い方をする。
その他の要素
cite q dfn code var samp bdi bdo についてはHTML4.01もLiving Standardも変わらない。