HTMLの憂鬱

Completed on 2000.08.28



よいページコンポーザーを使いましょう

 World Wide Web(以下、「ウェブ」と表記する)に自分のページを持っ ている人の殆どは、ページの作成に「ページコンポーザー」とか「ペー ジビルダー」と呼ばれる類のソフトウェア、ページ作成(編集)ソフト を使っているのだろう。

 とあるウェブブラウザーに付属していたページ作成ソフトを使ってみ たことがある。いささかバギィでよく落ちるのと、たとえばリストの入 れ子ができないらしい(やってみたらダメだった)などの不具合を感じ たのとで、すぐに使うのを止めてしまった。が、それくらいで諦めては いけなくて、ウェブページの作成には専用のツールを使うのが王道とい うものであろう(たぶん)。

 ウェブページ文書(HTMLソース)は構造を持ったデータだから、その 構造を熟知しており、かつ構造に従ってデータを処理できなければ編集 が面倒でしょうがない。凝った文書はワードプロセッサーで書くのと同 じようなことだ。

 といいつつ、ぼくは今のところ、自分のウェブページをテキストエディ ターで〈手書き〉している。

 正気の沙汰ではない。テキストのみ、凝ったレイアウトなし、だから 何とかやれているけれど、画像を貼り込んだりきれいに並べたり表組を 使いまくったりクリッカブルマップを仕込んだり……したら、〈手書き〉 では発狂するのではないか。

 じゃーなんで〈手書き〉なんかしてんの、と言われると、それは恐ら く、「生のデータ」を見ていたいからだろう。その方が安心できる気が するから。

 というわけでいきなり自己矛盾を露呈するが、ページ作成ソフトで 〈文書および文書構造HTMLによる記述〉を編集するのは、UFOきゃっちゃー (古いでしゅか)でアスカのフィギュアを取ろうとしているみたいにも どかしい。正直に言って、快適ではない。

 まあこれはページコンポーザーとの最初の出逢いが悪かったからだ。 それにソフトはどんどん進化する。いずれは気に入るソフトが現れるだ ろう。

それにしても

 HTMLソースを〈手書き〉していていると、「データ(構造)の記述」 と「外部表現の記述」って実は真向から対立する要求なのでは、と思っ たりする。

 HTMLは汎用データ記述言語SGMLの流れを汲む言語で、それから考えれ ばウェブに掲げる文書データの〈論理構造〉をタグをつけることによっ て記述するのが目的と思しい。それにしてはHTMLが提供している〈論理 構造〉はえらく貧弱で、これで文書の構造を示せるのかと言われれば答 に困るほどだけれど、さまざまな種類の「文書」の最大公約数をとろう とした結果なのかも知れない。この辺りの歴史的経緯には詳しくない。

 その一方で、〈外部表現〉に関わるタグは豊富にある。これらのタグ を上手に使わなければ「そこそこ見られる」ページデザインさえ難しい のが現状だ。ぼくのページは(今のところ)デザインとしては相当手を 抜いているが、それでも「論理構造」とは全く無縁のタグを随所に挟み 込んでいるし、そうせざるを得ない。しかも豊富にあるといっても充分 にたくさんあるかというとそうでもないのがよけいに悩ましい。本当に 欲しいものはなかったりする。

 HTMLがばきばきのデータ記述言語を目指してデザインされたのかどう かぼくは知らないが、この辺にデータ記述言語というものが持つ〈難し さ〉が内在しているように感じる。これはもう、日日HTMLソースを書き ながら感じているのである。実感なんである。

構造の記述と表現の記述の溝

 「データ記述言語」というのは、その名の通り、データ構造やデータ そのものを記述することを目的とした言語のこと。一般的な名称だと思 うのだけど、もしかしたらぼくの勝手な発明かも知れない(いや、そん なことはないだろう……)。

 SGMLやXML(正確を期すなら、少なくともバージョン1.1以前、かな) では、DTDが〈データ構造の記述〉にあたる。DTDは文脈自由文法そのも のなので、SGMLやXMLは文脈自由文法で記述できる文(データ)ならな んでも記述できる能力を持っていることになる。強力たる所以だ。ちな みにHTMLは、バージョンいくつかだったかでSGMLだかXMLによるDTDが記 述され、晴れてどちらかの言語の「サブセット」になった筈だ。この辺、 詳しくもないし興味もないのでうろ覚えで書いている。間違っていても 責任はとらないので悪しからず。

 データ記述言語にとっては、外部表現(ぼく流に言うなら〈表現形〉) の記述なんか、ほんとうは念頭にない。たとえで言えば、よせばいいの にぼくの知らない分野を引合いに出すが、化学の分子構造式が〈構造〉 を表しているのに対し、発泡スチロールと竹ひごで作る分子模型が〈外 部表現〉だ。遺伝子の塩基配列が〈構造〉で、それから導出されるアミ ノ酸が〈外部表現〉だ。これは違うか。

 完全にシステム内部に留まるデータであれば、それが人目に触れた時 どんな形をとるべきかなど気にする必要がない。システム内部で取り交 わすだけのデータをXMLで記述するとしても、誰もXSLで外部表現の記述 まではしないだろう。

 しかし、多くのデータは人目に触れるものだし、まして時代はGUIで、 舞台は個人利用も商業利用も花開いたウェブなのだった。それでなくと もデータの作り手の側に「この文書はこんな風に見えて欲しい」という 〈願望〉が当然のように生まれてくる。これを抑えることはできない。

 かくして、外部表現に関わるタグが増えていった……のかどうかは判 らないけれども、HTMLには〈妙な〉タグがけっこうあり、しかもこれら を巧みに使わなければ見栄えのいいページを作れない有り様になってい る。<pre>タグなんて掟破りのきわみだし、きれいにレイアウト できるというだけの理由で、表でもないものに表組(table)を使う例 もある。(ぼくもやろうかと思っている)。

 HTMLやウェブブラウザーの表現能力自体にも問題はなしとしないが、 「論理構造とそれに従った内容の記述だけじゃ、〈見ため〉のいいもの は作れない」という根本的な問題が横たわっているように思う。いっそ、 ウェブに掲載する文書の記述言語が「如何に見栄えよく表示するか」に だけ配慮したものだったら、いま感じているまどろっこしさはいくらか なりと軽減されただろうに。

スタイルシートに期待?

 HTMLのバージョンが上がって、ようやくスタイルシートという概念が 出てきた。「そんなの最初から考えとけよ、が〜〜〜」と言いたいとこ ろだけど、まあ、できてよかった(自分は当分使う予定がありませんが)。 これにより、〈文書の論理構造〉の記述と〈外部表現〉の記述が分離さ れることが期待される。本当に?

 実際に使ったわけでもないし詳細に調べてもいないので推測でしかな いが、スタイルシートというのが「文書構造」と結びついたレイアウト 情報であるならば、そんなものとは無関係にレイアウトをした い欲求はじゅうぶんあり得る筈で、そうであればスタイルシートだけで はページ制作者の要望に応えきれないだろう。

HTMLの根本の問題

 きわめて直感的だが、HTMLは問題だらけであり、スタイルシートだけ では救えないと思っている。

 まず、縦書ができない。

 「日本語は横書きでも書ける言語だ。だったら、横書きに揃えちゃえ ばいいじゃないか」というのは乱暴な話だ。「コンピューターの画面上 に表示する場合、縦書きはかえって不便だ(表示しづらい、読みづらい)」 というのも、一面事実ではあるが、だから横書きでいいじゃないかとい うのも頷けない。文芸作品などはまだまだ縦書きが主流であり、ぼくも 文芸作品は縦書きの方が読んでいてしっくりする。そういう人はまだま だ多いだろう。これは文化の領域で、文化の問題は効率とか合理性だけ では片づかない。

 いずれは横書きに収束していくかも知れないが、少なくとも10年や20 年は縦書きの要望はなくならないと思う。

 「どちらでも好きな方を選べる」状況で横書きを選ぶ人が次第に増え ていくならともかく、今のHTMLでは縦書きという選択ができない(の筈。 文字の並べ方を指定するオプションは、ぼくの調べた限りでは、存在し ない)。このページは縦書きで表示したいと思っても、それができない のだ。

 これは考えてみるとものすごいことであって、日本語は横書きでも書 けるからいいようなものの、文字の並べ方が縦方向しかできない言語で はどうしているのだろう。無理やり横書きにしているのだろうか。これ までやったこともやろうとしたこともないことを、コンピューターの都 合に合わせて、無理やりに? それが〈コンピューター化〉であり〈グ ローバル化〉なんだとしたらちょっとおかしい気がする。文字集合と並 んで、「文字の並べ方」(これを「スクリプティング」という筈だが資 料が本の山に埋もれているので不確か)も言語にとっては重要な要素だ。

 この観点からみるとワールドワイドウェブなんて名前負けもいいとこ ろだ。数学風にいえば、みんなして英語を使った場合、かつその場合に 限り、「世界規模」は真となり、気の早いハチは「旦那だんな、やっぱ り連中は英語圏のことしか考えてませんぜ」とご注進におよんだりする。

 筆というかキーボードが滑った。

 もっとも、現在はこのワールドワイドウェブというかつて見たことも ない「仕掛け」に、みんなでまずは乗ってみましょう、その後でみんな に合わせて仕組を手直ししていきましょう、という時期なのだとすれば、 少少の不都合は我慢してやろうってなもんだ、なあハチ。

 また滑ったが、この先どんどん滑りそうな予感もしつつ進めるが、そ うでなければ大変なことになる。コンピューターの都合に合わせて、ウェ ブの都合に合わせて世界の文化が画一化していく恐れがあるのだ。こん なことから画一化していくんじゃたまらない。

 ウェブページには「ページの大きさ」という概念もなければ「用紙の 向き」(タテとかヨコとか)という概念もない。どうしてこうなってい るのか知らないが(想像できないこともないが)、こういう「原理的に ∞」という「紙」の上で文章や画像をレイアウトするのは、デザインが スキって人にも辛いんじゃないだろうか。制限があってこそ発想やセン スが生きるってこともあるんだし。

表示系がもうちょっと頑張ってくれてれば

 ぼくのページは文章主体だし、それも分類ごとに並べたい性質のもの ばかりだから、実際に見る自分のページについては文章の割りつけなど に文句があるくらいで、まだマシな方だと思う。恐らくウェブの草創期 にはこういうページが多かったのだろう。

 「思った通りに見えて欲しい」という気持は判るし、みんな自分のペー ジを際立たせたいのも判る。でも、今よくやられているような〈無理〉 をしてまでしなければならないものなんだろうか。ぼくの使い方からす れば、「このタグはこういう風に表示する」という指定や選択がブ ラウザー側の設定としてできればそれでいいのだが。データの送り 手は「構造(だけじゃないけど)」を提示する。それをどう見るかは 「表示系」で閉ざされた問題だから。

 そう、問題は「表示系」「言語解釈系」たるブラウザーの側に(も) ある。もともとそなえている表現能力が低い。

 同じマークアップ方式の組版言語(処理系)であるLaTeXは、やはり 論理構造を指示するだけでは済まないけれど、基本的にはレイ アウトの細部は気にしなくても概ねきれいな仕上がりを得られる。対し てウェブブラウザーはといえば、たとえば、禁則処理をしてくれない。 行ピッチや文字ピッチをどれだけとるかとか、段落の始まりは字下げす るかどうかとか、文書を見える状態にする時に気にすべきことをろくに 考慮していない。

 記述言語のHTMLにそういう概念がないのは仕方ない。が、解釈系・表 示系たるブラウザーがそういう設定をできてもいいのではないだろうか。 行間をちょっと空けるだけで見やすくなるウェブページってあると思う (文章がやたらと多いページなど。他ならぬこのページがきっとそうだ)。

 それを救うために考え出されたのがスタイルシートだって、それは判っ ているけれど、スタイルシートはあくまでページ文書ごとの「個別」の 解決だ。「『デフォルト』を用意しておいて云々」というソフトウェア お得意の解法を提供するのだとしても、そのデフォルトは、上でぼくが 述べたものに他ならない。それなら最初から実装しておけばよかったじゃ ん。

構造エディターとビジュアルプログラミング

 話はまったく関係のない方向に飛んでいき、残りは余談です。

 「ウェブページ作成ソフト」というのは、実は構造エディターであり、 見方によってはビジュアルプログラミングツールなんですね。

 構造エディターって、聞いたことありませんか。ないかも知れません ね。けっきょく流行らなかったなあと思っていたら、いつの間にかあち こちに忍び込んでいる。構文エディターともいい、取り扱う文書の構文 を理解していて、たとえばブロック単位の削除が簡単にできるとか、キー ワードを入力するとそれが要求する構文のテンプレートを自動的に挿入 するとか、そういうことができる文書編集プログラムだ。コメントやキー ワード、構文を強調表示する、なんてこともできる。

 ここまで読めばあれっと思う人も多いだろう。シアトルものの統合開 発環境に載っているエディターも構文エディターの機能を備えている。 古くはBorland C++なんか早くからそうだったと思う。Turbo Cの頃から そうだったかも知れない。GNU Emacsもそうだ。ウィンドウシステムが 当たり前になって、メモリも安くなってきたから、テキストエディター はみんなこういう機能を備えていくかも知れない。

 ウェブページの作成では、とある文章の連なりを中央寄せにしたり、 見出しを挿入したりするたびにHTMLソースにタグが挿入されていく。 それらの文書要素を削除すればタグも一緒に削除されなければならない。 これはHTMLの構文を知っていなければできない。

 GUIベースのウェブページ作成ソフトだと、文章の範囲を選択して 「右寄せ」など選ぶと右寄せして表示されたり、画像を貼り込めば画像 が貼り込まれたり、ということが、マウス操作とグラフィック表示で対 話的にできる。これは、プログラム要素をフォーム上に配置していくと それらを動かすコードを自動生成するビジュアルプログラミングに似て いる。

 いや、だからなんだというものではないのだけれど、ウェブページ文 書の作成を、HTML解釈系(ブラウザー)に対する指示(HTMLタグ)を記 述していく「プログラミング」だと考えると、面白いかも知れないね。 というよりもうそういう見方をしている人たちは多いかも知れない。

 ということで、自分のウェブページを作っているみなさん、みなさん の中には「えー。プログラミングぅ。そんなのできないぃ」と思ってい る人もいるかも知れません。でも実は、もうすでに、プログラミングに 手を初めているんです。

 そういう目で見てみると、ウェブページ作りにもまた違った興味が出 てくるかも知れないし、プログラミングというものもちょっとは身近に 感じるかも知れません。責任は持たないけど。





目次へ


(C) Copyright nulpleno. All rights reserved.