HTML5:段落について語ろう(改訂版)

HTML5にまつわる、様々な解説サイトがあるが、そのいずれも、このポイントにはあまり触れてないので、僕ぁ、敢えて、触れてみることにした。

……という意図の文書を以前、ここに置いていたのだけれど、それを、ちょこっと、書きなおしたり、文章を削除したり、いろいろ修正させてもらいました。今から思うと、なんか、盛り上がってたんですな、当時……。

(;´Д`)<ゴメンヨー

そんなこんなで、元々の版の公開日時は……、2013年2月1日、そんで、この改定版が、2016年7月公開。修正、削除を施した箇所も、別段、明示しませんが、また、一からお付き合いくださいな。

Webの世界のえらい人たち曰く

HTML5の勧告候補のP要素についての記述(4.5.1 The p element — HTML5)の中に、こんな箇所があるのを、皆さん、気づいてました?

The solution is to realise that a paragraph, in HTML terms, is not a logical concept, but a structural one. In the fantastic example above, there are actually five paragraphs as defined by this speciication: one before the list, one for each bullet, and one after the list.

4.5.1 The p element — HTML5より引用。強調は引用者。

え? 何だか分かんない? じゃあ、HTML5.jpさんから、この箇所の和訳を……。

この答えは、HTML 用語における段落は論理上の概念ではなく構造的な概念であることに気づくことです。この上記の空想のセンテンスには、この仕様で定義されているとおりの段落が実際に 5 つあります。リストの前、それぞれの黒丸のそれぞれ、そして、リストの後です。

p 要素 - コンテンツのグループ化 - HTML要素 - HTML5 タグリファレンス - HTML5.JPより引用。強調は引用者。

もちろん、強調箇所が、今回の本題です。

勝手な解釈

これは何だと目を疑ったんだけども、どう考えても、これは、旧来のHTML/XHTMLで論争の続いていた『段落という文法論』への解答なんだろうという解釈に至った。

思えば、人々は、HTMLに於いて、如何に『論理上の段落』を表現するか、あるいは、表現できるのかを論じてきた。その途中経過として、XHTML2.0では、P要素の中に、LINE要素というブロックレベル要素を用い、日本語の文章に於いて、意味段落、形式段落と呼ばれていたもの達の混在を可能にし、更に、UL.OL,DL,BLOCKQUOTEなど、幾つかのブロック要素までをも入れ込めるようになって、『論理的な段落』の表現に近づきつつあるかもしれないところまで来ていた。

一方、その流れとは別のところで発生したHTML5が、段落という文法論に対して出してきた答えが、冒頭の引用によるところの『HTMLの段落は、単なる構造だ』だったというわけ。

XHTML2.0の方式に比べ、この解釈は、ブラウザの段落についての実装を変更することなく、尚かつ、旧来の仕様からも大幅に乖離することがなく、その上で、多くの問題を飛び越えてしまえる。

先の引用元の例示のように、P要素の代わりに、DIV要素を使うという方法までを持ちだせば、論理的な段落だろうが何だろうが、表現できないことはなかった。先のHTML5の仕様書にも幾つかの例示がある通り、論理的な段落についての表現は、もっと何とかできる余地があった。

ただ、僕らページの製作者も、『印刷』によって植え付けられた習慣や、論理的な表現方法、ブラウザの実装、HTMLという技術仕様の、間というか隙間というか、そういうところで、少しばかり深読みし過ぎ、そのせいでがんじがらめになって、勝手に苦しんでいたんじゃないかと、思わなくもないわけだ。

それを思うと、HTML5の出した結論は、歓迎してもいいんじゃないかと思えてきたのである。

明日のために

僕の、上で書いたような解釈が正しいかどうかはともかく、勧告候補の仕様書がああ言っているのだから、僕も、じゃあ、その仕様の上で、どうやっていこうかと、考えないといかんなと思ったわけで。

いろいろ考えたんだ。

例えば、意味段落、形式段落の書き分けのために、P要素を、DIV要素で囲う。創作物の小説チックな奴は、カギカッコの前後は、段落にせんでも、改行でもよかろうとか、P要素の排除(!)まで、考え……、いや、嘘。そんなこと、考え……、正確には、一瞬考えたけど、あまりにも、あんまりなので、すぐさま、思い直したりと、いろいろ、考えた。

結局、僕の方針をまとめておくと、こんなん。

一つの例として、

小津は、器用に、鼻の穴から、アイスティーを啜りながら、

「コーラだったら、死んでるぜ」

ただただ、しょうもないことを言っているのだが、その姿は、何故か、僕らの心を惹きつけて止まない……。

鈎括弧の前後で、改行はするんだけど、段落(概念)は一続きだ、なんて文章。

これについては、僕は、もう、概念は忘れて、構造でマークアップしてしまうことにした。現に、『一つの例として』から、ここまでの段落のソースを見てもらえば一番早いんだけども、改行(BR要素)も入れずに、とにかく、一つ一つの行について、P要素としてマークしている。

それで、このページでは、段落、P要素ごとに一行空けという、見慣れたレンダリングになっているはずだけども、僕の創作長文テキスト『この曲がりの果てに……』については、CSSで行間を詰める、HR要素で形式段落を示してみる、というか、場面が変わるなら、いっそのこと、章を変えちゃう……という、三つの方法をつかって、それなりに、なんとかなるんじゃないか(作品の内容が……ではなく、あくまで、文章の体として。)と思いながら、書いている。

しかし、段落の行間処理については、過去の、HTML4.01なんかでは、確か、『CSSで段落の間を詰めっちゃうと、見てる人が混乱するからダメだよ』(※)なんてなことを言われた気がするような、しないような。(汗)

Style sheets provide rich control over the size and style of a font, the margins, space before and after a paragraph, the first line indent, justification and many other details. The user agent's default style sheet renders P elements in a familiar form, as illustrated above. One could, in principle, override this to render paragraphs without the breaks that conventionally distinguish successive paragraphs. In general, since this may confuse readers, we discourage this practice.

HTML 4.01 Specification 9.3.5 Visual rendering of paragraphsより引用。

(∩゚д゚)アーアーきこえなーい 英語ワカリマセーン

自分が何に拘泥しているのか、そこんとこを整理して、片付けてたら、案外、何も、拘泥するべきものがなかったんで、好きにやることにした。だって、見てる人なんか、そんな、いきなりページのソース開いて、粗探しをしにくるわけでもなしさあ……という結論で、2016年7月某日現在、ご覧の通りの、このスタイルに落ち着いた。

今日、小説を書く人には、電子書籍用のフォーマットだってあるし、何でもかんでも、HTMLにしなきゃダメだということではないわけだから、もっと柔軟に考えたら良いんだと思うわけで。

ただ、DIV要素に、素のままのテキストをぶち込むとか、あの例も、どうなんでしょうねえ……。いや、いいんだよ? いいんだけど、なんか、こう、しっくりこないっていうかさあ……。