スペースがないなら script 書けばいいじゃない
2007-01-15


HTML で日本語と ASCII 文字の間に半角スペースを入れるべきか否か、というお話。見ての通り、おいらは入れちゃう派です。

考え方とかは後回しにして、とりあえず 30分ぐらいで作っちゃったスクリプトの紹介からw

ASCII 文字とそれ以外との間に余白が見えるようにするスクリプト

semantic でない「見た目の為」だけの空白文字は使うべきではない、と言いたくなる人の気持ちもわからなくは無いのですが、「本来ブラウザがその辺の見た目の面倒を見るべきだ」とか言っちゃうのは流石に傲慢に過ぎると思う。Gecko のパッチを作るのもいいけれども、とりあえず Javascript でまかなえそうなことは Javascript でまかなってしまうというのも手では無いだろうか。

と、いうわけで、作ってみた。w

使い方もサンプルの中で書いてるから参照してちょ。あと、スクリプトはできれば直リンクではなくダウンロードして各自が管理するサーバー上に置いて使って欲しい。

ブラウザ上でテキストを反転してみると分かると思うけれど (さらにコピペしてみたりするとなおよく分かると思う)、スペースを直接挿入しているわけではなくて、クラス名付きの <span> タグを挿入し、スタイルシートでマージンを空けるという方法を採っている。表面上の動作としては、アクセス性原理主義的な要望にブラウザが応える場合に、行うべき動作をシミュレートしてみた、という感じ。

スペース入れる派の主張

おいらの場合、理由は 3 つある。

こういう使い方を想定すること自体おかしいだろうとか言われちゃうとちょっと辛いのですが (^_^; 。

逆に、テキストエディタ上で HTML 編集するときに自分が見づらいから、という理由でもあったりする。ちょー傲慢>ヲレw

ブログで HTML 書く時はあんまり気にしないんだけど、テキストエディタで HTML 書く時は、文章の、というかパラグラフの途中でも、適当なところで改行を入れてしまう。HTML では改行も空白として扱われる為、結局のところ、余計な空白がぽつぽつ入り込んでしまうことになる。実用的なことを言えば、これをいちいち気に止めていても仕方ないんじゃん? という思いがあったりする。

まぁでも、最近は「HTML はあくまでメタデータというかプロトコルなのであって、人間が直接書くべきものじゃない」っていう考え方の方が主流になりつつあるから、この主張も次第に形骸化していったりもするのかな。なんだかんだで Wiki 文法的なものの方が受け容れられやすくなっているようだし。

縦書きにすら対応できてないくせにえらそうに言うな、という話。アラビアンのために右から左へ書いていくスタイルはサポートされているのに。

考えてもみて欲しい。英語は確かに単語単位でスペースを挟む仕様になっているし、日本語も確かに単語単位でスペースをわざわざ挟まない仕様になっている。しかし日本語と英語が混ざるような文章において、日本語部分と英語部分の境目はどうあるべきなのかということについて、確たることが言える人間などこの世にいるのだろうか? 定義のないことに関しては、「何もしない」のが正しい動作である。違うか?

ブラウザ開発者の誰一人として、あるいは HTML/CSS の仕様策定に関わる人間の誰一人として、この件に関する「真実のあり方」を知る者はいないし、そしてそれに「触れようとする者」も現れなかった。それだけのことなんじゃないのか? そうでなければ DOM の Node.TEXT_NODE


続きを読む

[設計・開発]
[イン夕一ネット]

コメント(全4件)
コメントをする


記事を書く
powered by ASAHIネット