RYU's HOME P@GE

福島中年探検隊

HTML の餘計な話

マーク附けはシンプルが第一

まづ設問。

次に挙げる文章は、二千年ほど前に成立したとされる『般若心經』(玄奘譯)です。 これを文章の意味や構造に基づいて適正にマーク附けし、HTML 文書を完成させなさい。 尚、このページのソースを覗いても大して参考になりません。 単に <dd> で圍んでゐるだけです。 (制限時間 10 分)

問題例文
摩訶般若波羅蜜多心經 觀自在菩薩 行深般若波羅蜜多時 照見五蘊皆空 度一切苦厄 舎利子 色不異空 空不異色色卽是空 空卽是色 受想行識 亦復如是 舎利子 是諸法空相 不生不滅 不垢不淨 不增不減 是故空中無色 無受想行識 無眼耳鼻舌身意 無色聲香味觸法 無眼界 乃至無意識界 無無明 亦無無明盡 乃至無老死 亦無老死盡 無苦集滅道 無智亦無得 以無所得故 菩提薩埵 依般若波羅蜜多故 心無罣礙 無罣礙故 無有恐怖 遠離一切 顛倒夢想 究竟涅槃 三世諸佛 依般若波羅蜜多故 得阿耨多羅三藐三菩提 故知般若波羅蜜多 是大神咒 是大明咒 是無上咒是無等等咒 能除一切苦 眞實不虚 故說般若波羅蜜多咒 卽說咒曰 羯諦羯諦 波羅羯諦 波羅僧羯諦 菩提薩婆訶 般若心經

さすがに全部繋げてしまふとさっぱり解らないと思ふので、半角スペースを入れてあります。 そこで意味が切れてゐます。

何故、こんな問題を出したかと言ふと、HTML は文章の意味や構造を明示する爲にある、と言はれてゐるからです。もちろん理想としては、さうあるべきです。 しかし、何う考へても HTML で意味や構造を明示するのは無理がある。問題例文のやうに、せいぜい意味の切れ目に印を附けるぐらゐしか出来ません。それならタグではなく、半角スペースや CRLF でも代用できます。 SGML を簡便にした HTML では、いはゆるセマンティックウェブを實現するのは難しい。始めから XML のやうなメタ言語を使った方が良いのです。

HTML は文章を人間に讀ませる爲にあるとするならば、CMS などの動的出力で已むを得ず段落を <br><br> としても問題になりません。 誰が讀んでも解る文章なら、それでも良い。 一方、讀んでも解らない文章、例へば設問のやうな御經などは、そもそもマーク附けしやうがありません。 その場合は適當なタグで圍んで措けば良い。HTML は可なり大雑把なマーク附け言語なので、マーク附けはシンプルである事が一番です。class などの屬性も、出來れば無い方が良い。

HTML は機械處理するには極めて中途半端な仕様です。例へば御經であれば、讀み易くレンダリングする爲の「印」ぐらゐにしか使へません。

HTML5 のルーツは何だろう

HTML のルーツ
GML → SGML が直接のルーツ。
XML のルーツ
GML または SGML が直接のルーツ。

HTML5 のルーツは何だと思ひますか。 實は私も解りません。 名稱からすると HTML 4.01 の後繼仕樣に見えるのですが、これは表向き。 從來の DTD を廢止して DOM に依る制御になってゐます。 だとすると、そもそも GML → SGML をルーツとしない、全く新しい仕樣と云ふ事になります。

前世紀の末に、Microsoft 社が IE ( Internet Explorer ) に實装した DHTML ( Dynamic HTML )といふ獨自規格がありました。 これは JavaScript や VB などのプログラミング言語を使って、いはゆる動的な HTML 文書を實現するものです。 いつの時代にも、この手の規格には商業的なニーズがある。 ただ、當時は W3C が牽引する標準化の動きの方が勝って、ブラウザベンダの思惑は尻すぼみになって行きました。 あれから十五年餘、滿を持した(?)ブラウザベンダや業者によって HTML5 が提唱されてゐます。 商業的なニーズが優先されてゐる點を考へると HTML5 のルーツは DHTML ではないかと思ひます。

DHTML では實装の異なるブラウザで互換させる爲に、「クロスブラウザ」といふテクニックが流行りました。 ちょうど現在のレスポンシブ・ウェブデザインと同じ。 異なるデバイスをワンソースで、といふ考へ方は、かつての「クロスブラウザ」なのです。 最新の仕樣と言ひながら、考へ方は可なり古臭い。

NN 4 ( Netscape Navigator 4.x )に追い附き追い越せで打ち出された DHTML は、今、新しい仕樣を携へて不死鳥のやうに甦る。(なんのこっちゃ)

DHTML って何?

判り易い例。

スカッシュゲーム
Start ボタンを押して球を打ち返して下さい。 (ゲームだけのページ
動作確認環境
Windows 95 OSR2 + IE 4.01 (東芝リブレット 70)
Windows 7 + Chrome 23.0
Windows 10 + Edge 103.0 / Firefox 102.0
環境に依って動作しない事があります。 ちなみに JavaScript が ON (有効)でないと何も起こりません。
また、ブラウザの JavaScript エンジンの性能など環境に依存します。 球のスピードは低スペックなハードウェアでもそこそこ遊べる設定にした積りですが、動作が遅い場合は御連絡下さい。
1999 年制作 ©1999

人間が讀んで解るやうな中身はありませんが、このゲームを實現してゐる HTML 文書は valid です。 形式と内容は異なるので、斯う云ふ「文書」でも問題ありません。

そんなもん、Flash か何かでやれ。 仰る通りです。 HTML でやる必然がありません。 しかし、これと同じ事を HTML5 ではやらうとしてゐる。 その中心で牽引してゐるのはブラウザベンダで、OS に代はるアプリケーション・プラットホームの獲得を目論んでゐるやうです。

形式と内容は混交し易い

マーク附け例
<p>今日は良い天氣だ。</p>

P は要素ではなく、要素型だといふ事は旣に述べた通りです。 したがって、擧げた例は HTML 文書中で形式的に「段落」として扱ふに留まり、文章の内容が意味的に段落であるといふ事ではありません。 もちろん形式と内容は出来る限り一致してゐるのが望ましいけれど、計算機は <p> しか解釋しない。 つまり、形式の話に限るならば、<p> で圍まれた内容(要素)は必ずしも段落であるとは限らない。 この邊りは HTML の限界でもあるのですが、さて措き。

よく P 要素( the P element )といふ用語を聞きます。 晉通に考へるとタグ <p> で圍まれてゐる「今日は良い天氣だ。」といふ文章自體(そのもの)を指してゐると思ふのですが、HTML では形式的な「段落」以上の意味はありません。 計算機は内容(文章など)が何であれ、その部分を「段落」として取り扱ふ。 もちろん DTD にも「段落」の意味は書かれてゐません。 書かれてゐたところで計算機は理解しない。 要素型に圍まれた要素(内容)を理解するのは人間だけです。

「 P 要素」と言ってゐる人は、形式の話をしてゐるのか、内容の話をしてゐるのか。 これが往々にして混ぜ込ぜになる事が多いのです。 人間がマーク附けする以上、両者が混交するのは已むを得ない面もあるのですが、HTML 仕樣では形式以上の事は規定してゐない。 解り易く言ふと、お役所の手續きを思ひ出して下さい。 申請手續きなどは所定の形式に則る事を要求されますが、これと HTML は同じです。

いはゆる HTML 論争の多くは、形式と内容がきちんと區別されてゐない事が原因で起きてゐます。 例へば、HTML 4.01 の仕樣である Frameset (フレーム)を「使うべきではない」と主張する根據は、少なくとも HTML の仕樣には無い。 仕樣通りに正しく使ってゐるなら問題ありません。 これが分らない人が多いのです。

HTML で飯は喰へない

ウェブ屋と呼ばれる人たちは何で喰ってゐるのだらう。 情報設計? レスポンシブ Web デザイン? アクセシビリティ? ウェブアプリケーション? 取り敢へずリニューアル? さうではなく餘計なお世話(ユーザ體驗とか)で?

SGML を扱ってゐた人は HTML 2.0 以降の HTML が情報處理に使へるとは考へないのですが、始めから HTML だった人は情報處理にも使へると考へました。 これは旣に述べたやうに、いはゆる DTD 固定では無理がある。だから XML などメタ言語を用ゐるべきなんですが、扱ひが簡便な HTML でなんとか……。 斯う云ふ人がウェブ屋になってゐる。 しかも、昨今の業界の中樞を擔ってゐるのです。 しかし、もともと素人向けの HTML で飯を喰ふのは難しい。

素人向けの HTML を、プロであるウェブ屋が使ふと何うなるか。 素人には思ひ附かないような複雜な(奇怪な)マーク附けになり易い。 冒頭に書きましたが、マーク附けはシンプルが第一です。

関連ページ
ご意見ご感想など

2012/11/20 (©2012 MIYAKE_ryutaro)