HTMLで文書を書く上で

HTMLで文書を書く上で、h1〜h6要素、p要素、a要素さえあれば何とかなる、と言った旨の発言をしたらだいぶ批判されたので、この発言の意図を書いておこうと思う。

まず自分はHTMLを素直に「文書にマークをつける言語」として見ている。まあこれは当たり前のことだけれど、そういう風にとらえてるから当然まずは文書ありきということになる。最初に文書があって、それに対してHTMLを使ってマークをつけていく。

文書を書く上でもっとも基本になるのはタイトルと段落である。

タイトルはその文書に書かれている内容を端的に表し、段落は文章の内容を意味ごとに分けて述べる。まずはこの二つがあれば文書は成り立つ。

そしてこの最低限の構造の文書をHTMLでマーク付けすることを考える。

この最低限の構造の文書にはタイトルと段落がある。タイトルはtitle要素で示すが、細かく見出しで分けられている場合はそれぞれh?要素で表し、段落はp要素で表す。ちなみに自分の発言にtitle要素のことが入っていないのはbodyの中身の事を言ったからである。

またHTMLはWeb上で取り扱われる文書を記述するマークアップ言語だから、とうぜんWebの性質を持った要素がある。

そのWebの性質の中でもっとも大事なのは、他の文書のURIを示すことでその指定された文書に飛ぶことができるハイパーリンクである。HTMLで言えばa要素がこれにあたる。

文書としてのタイトルと段落、Web上の文書としてのハイパーリンク、これさえ備えればその文書は「最低限のWeb上の文書」になる。先の自分の発言はこういった考えがもとである。

とうぜんこれは最低限の文書であるから、文書として成り立っているし、きちんと読めるけれども、強調されてる部分がないので文章に凹凸がない等、その内容を伝える上でまだ障壁が残っている。明確さに欠けている部分もあるかもしれない。

それを出来るだけ取り去るためには、「ここは強調して言いたいな」というところをstrong要素でマーク付けしたり、「ここは引用文だ」というところをblockquote要素でマーク付けしたりと、さらに追加のマーク付けが必要になってくる。

もちろん自分の発言はその追加のマーク付けを否定するわけではない。

自分の発言について id:qnighyifとgotoがあればチューリング完全なのでプログラミングできます!みたいな話だと言っていたけど、言ってしまえばその通りである。ただ自分はifとgotoだけでプログラミングしないし、そうすべきだとも思わない、という話だ。

最後になるが、「何とかなる」という表現は誤解を招くおそれがあって不適切だな、とは思った。ここは自分の過失。