やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

HTML文書をつくる7 用語と略語(dfn, abbr)

 語を定義する。

要素一覧

要素 概要
dfn 用語を定義する
abbr 略語を示す

dfn

 dfnは用語を定義する。

<dfn>パソコン</dfn>

 title属性には完全表記(正式名称)を入力する。

<dfn title="パーソナル・コンピュータ">パソコン</dfn>

 dfnは直近の親である<p>,<dt>,<dd>,<section>要素に、その定義内容とともに含めるべき。

<section>
<h1>パソコンとは</h1>
<p><dfn>パソコン</dfn>とは、個人用コンピュータのことである。</p>
</section>

 id属性をつけたら、<a>要素でリンクできる。

<a href="#pc">パソコン</a>

<section>
<h1>パソコンとは</h1>
<p><dfn id="pc">パソコン</dfn>とは、個人用コンピュータのことである。</p>
</section>

 スクロールではなくポップアップしてほしかった。だってスクロールしたら元の位置に戻さなきゃいけないじゃん。文書が長かったら迷子になる。実装次第では「戻る」ボタンで戻れるかもしれないけど、それを知らない人もいるだろう。前のページに戻っちゃうのでは? と思って押せない人もいそう。その場でマウスオーバーなりタップなりすれば補足説明が出てくれるのが一番うれしい。title属性はマウスオーバーするとポップアップされる。でも、スマホだとマウスがない。どう表示されるのだろう。未確認だが、たぶん何も表示されないと思う。

 後述する<abbr>要素と併用することができる。

abbr

 abbrは略語を示す。

<abbr>パソコン</abbr>

 title属性で完全表記を示す。

<abbr title="パーソナル・コンピュータ">パソコン</abbr>

 略語を用語として定義する。

<dfn><abbr title="パーソナル・コンピュータ">パソコン</abbr></dfn>

疑問

 疑問は多い。<dfn>だけでよくない? 表記ゆれについてはどうするの? ルビを振りたいときは<ruby>要素を入れちゃっていいの?

  • <dfn>,<abbr>の組合せ
  • 表記ゆれ
  • ルビ

<dfn>,<abbr>の組合せ

 以下3パターンある。どんなときに、どのパターンを使えばいい? ていうか、<dfn>だけでよくない?

  • <dfn>
  • <abbr>
  • <dfn><abbr>

 たとえば「パソコン」の場合、必ず<abbr>を使わねばならないの?

<dfn title="パーソナル・コンピュータ">パソコン</dfn>
<dfn><abbr title="パーソナル・コンピュータ">パソコン</abbr></dfn>
  • パソコン
  • パソコン

 略語だったら絶対に<abbr>で囲まなきゃダメってこと? 略語でない用語のときは<dfn>だけで定義するってこと?

 あるいは<dfn>id属性をつけて参照したいときに<dfn>を使えばいいのか?

 そもそも、<abbr>マークアップする、しないって、そんなに重要なの? 何の意味があるの? 略語と用語を区別する必要ってあるの? 用語のなかでも略語であることって大事なの? それをわざわざマークアップする必要ある? ほとんどの場合、字面で分かると思うのだが。

 できるだけきっちりマークアップするなら、略語のときは<abbr>を使えばいいのだろう。でも、<abbr>がなく<dfn>だけでも用語としてマークアップはできる。仮にそれらを使わなくたって、別に問題が起こるわけではない。結論、好きにすればいい。でもそしたら絶対テキトーになるよね。統一した使い方をすることも難しくなる。考えただけで面倒くさい。もう知らん。

表記ゆれ

 パソコンはPCとも略す。PCと書いてピーシーと読むこともあればパソコンと呼ぶこともある。言語によってはPersonal Computerと書く。完全表記(正式名称)として書くべきは英語か、それともカタカナ英語か。どうすればいいの?

<dfn><abbr title="パーソナル・コンピュータ">パソコン</abbr></dfn>
<dfn><abbr title="Personal Computer">PC</abbr></dfn>
<dfn><abbr title="パーソナル・コンピュータ">PC</abbr></dfn>
<dfn><abbr title="Personal Computer">パソコン</abbr></dfn>
  • パソコン
  • PC
  • PC
  • パソコン

 通称パソコン。でも業界人はPCと書いてピーシーと呼ぶ。どっちで書いたらいいの?

 通称フォルダ。でもそれはWindowsでの話。Linuxではディレクトリと呼ぶ。どっちで書く?

 日本ではテレビゲームと呼ぶが、海外ではビデオゲームと呼ぶ。家庭用ゲーム機をすべてひっくるめて「ファミコン」とよぶ無知な人々。ポケモンのことをすべてひっくるめて「ピカチュウ」とよぶ門外漢がいる。
 本来、ファミコンは固有名詞の略称である。ほかにも家庭用ゲーム機にはPCエンジンだってあったのに、代表格であるファミコンだけをもって、さも家庭用ゲーム機全般をあらわすかのように使っている。それは正確にいうと誤用だが、俗称といえるかもしれない。ポケモン全体をピカチュウと呼ぶのも同じだ。ポケモンポケットモンスターという作品名の略名である。そしてピカチュウポケモンの中に出てくるキャラクターのうち有名な代表格だ。
 誤用する彼らは有名な固有名詞しか知らないから、そうした誤用が起きる。つまり業界、文脈、住んでいる世界によって呼び方がかわる。そうしたことを定義し、示すことは難しいだろう。その必要性があるのかどうかもわからない。HTMLでの定義もそこまで厳密にはできなさそう。

 <dfn><abbr>のテキストノードには何を入れたらいいの? <abbr>は略名だけど、それって通称? 俗称? <dfn>は正式名称をtitle属性に書くらしい。ならテキストノードには何を書くの? 略名? 通称? 俗称? それらが複数あるときはどうするの?

 略語、通称、俗称は別物? 同じ場合もあるし、違う場合もある。略語は略語でも、正式な略語を使えということか? 略語に正式なんてあるの? 大抵それは通称を指すと思う。通称は住んでいる世界によって変わる。よって略語、通称、俗称を区別することはむずかしい。なので<dfn>,<abbr>に書くテキストノードの値に迷う。title属性値は完全表記(正式名称)という指定はあるものの、表記ゆれがあるため、少し迷う。

 文書が日本語<html lang="ja-JP">であるなら、日本語で書くべきか? コンピュータ業界は西洋文化なので用語も英語である。それをそのまま和製カタカナ英語にするのが正しい書き方ということでよいのだろうか? もし話がプログラミングのことだったら? APIのメソッド名はアルファベットで表記すべきだろう。カタカナ英語にしたら何を指しているかわからなくなる。関数名なら<code>を使うのがよいのだろう。このとき、話は表記ゆれから文脈変化へと変わった。よって使うべき要素も変わる。それを認識するためには全HTML要素を正しく把握している必要がある。要素の使い方と、ほかの要素との使い分け。むずかしすぎる。

 どの要素を使うか。その取捨選択ってかなり大変じゃないか? 要素が多ければ多いほど、その選択コストがあがる。

ルビ

 <abbr>の中に<ruby>を入れてもよいのだろうか?

<dfn><abbr title="パーソナル・コンピュータ"><ruby><ruby>PC<rp></rp><rt>ピーシー</rt><rp></rp></ruby></abbr></dfn>
<dfn><abbr title="木村拓哉"><ruby><ruby>キムタク<rp></rp><rt>イケメン</rt><rp></rp></ruby></abbr></dfn>
  • PCピーシー
  • キムタクイケメン

 それとも、<abbr>の中にはほかのタグを入れてはならず、プレーンテキストのみ?

 一応、上記HTMLはちゃんと表示されているっぽい。でも、スクレイピングで解析するとき面倒になる。HTMLの規格的にはアリなの? わからん。

所感

 要素の併用を考えると一気にむずかしくなる。

 やっぱ雰囲気で使うしかないのか。おかしいな、規格書を読んでいるはずなのに。読み込みが足りんのか? 膨大すぎて隅から隅まで読む気になれない。なので書いていないかどうか把握できない。もういいよ。気になったことだけ書いておこう。細かいことは後回しだ。

対象環境

$ uname -a
Linux raspberrypi 5.10.63-v7l+ #1496 SMP Wed Dec 1 15:58:56 GMT 2021 armv7l GNU/Linux