Diary--/*isaji*/MIDI Lab.

<< 2024/11 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 >>

web上の文章における段落の行頭字下げ 2005-11-20 [permalink] [?B] はてなブックマーク

htmlにおいて段落はp要素によってマークアップされます。またp要素の区切りは多くのブラウザで行間を空けて表示されます。しかし、多くの紙面媒体においては、行頭を一字下げて表記され、またこれが日本語の文章としては慣れ親しんだカタチなのではないでしょうか。

判読性の面から考えると、Web上の文章に限っては行頭字下げを行わずに行間を空けた方が良い、と思うのですが、これは主観的なものなので、人によっては字下げされていないと見難いと感じるかもしれませんし、一概には言えないでしょう。

なのでマークアップの観点から考えます。行頭全角スペースの可否ではなく、どのように挿入すべきか。

行頭に2バイトのスペースを挿入するのは文書構造的に有りなのか?

もうちょっと絞り込むと、行頭スペースは"文字"なのか?それとも装飾なのか?

文字として扱うのであれば、p要素内の先頭にスペースを挿入しても問題ないと思われます。しかしその場合、特別意味のない2バイト文字が余計に含まれることになります。そして、それを除去したいと思った時に、閲覧者サイドからはどうになりません。

さらに……ちょっと飛躍し過ぎかもしれませんが、一字下げのスペースが文字として扱われるのであれば、センタリングなどの行頭揃え目的で用いられる全角スペースもまた文字として扱って良いということになりかねない。無論これは間違った使い方であるべきなんですが。

なので、装飾として考えてみます。

行頭字下げスペースは文字ではなく、あくまでも段落の区切りを明示する為の装飾であると。言うなれば、疑似要素:first-letterで装飾されるドロップキャップと同様のものと解釈します。

文章や構造ではなく、あくまでも装飾であるとするならば、html文書内に行頭全角スペースを挿入するのは良くない書き方という事になります。htmlは文書構造を記述するためのものであり、装飾はCSSを用いるべきだからです。

ならば、cssでp要素に対してインデントを設定すべきではないでしょうか。

p {text-indent : 1em;}

ページ制作者が、段落をp要素によって適切にマークアップしていれば、閲覧者側でインデントを設定することも出来るし、制作者がcssでインデントを設定している場合は、これを無効にすることも出来る。ユーザcssで

p {text-indent : 0em !important;}

などとしてやれば良い。

しかしtext-indentで全てのp要素に対して字下げを行った場合、地の文は問題ないとしても単一の段落として書かれた会話文も字下げが行われてしまう。これは単一の段落となる会話文に対しては別途class属性でインデントを設定してやれば問題ないのですが、そこまでCSSでのインデントに拘るというのも、Webに慣れた層なら別として、原稿用紙などの紙面媒体の延長としてhtmlをとらえている層には向かないかも知れませんね。尤も、そんな層はただ書いたテキストの行末に<br />を付加しただけでhtmlを公開していそうなので、p要素云々というところまで達していないケースが多いですけど。

それが悪いとは言いません。しかし様々な閲覧環境を考慮してWebページを制作する場合は、やはり上記のようなケースは問題です。たとえば、横幅の狭い携帯端末上でCSSを無効にして文章のみを読んでいる時、全角スペースで字下げなどのインデントが行われているとそれが煩わしく感じることがあるのです。

字下げの有り無しによる判読性が環境や個人によって定かではない事を思うと、全角スペースではなく、閲覧者側でどうにか出来るcssでtext-indentを設定してくれた方が有り難いなぁ、と。

html css | comments (0) | trackbacks (0)