class は「ごみ」

古くて新しい話題と言へさうなので、まとめてみました。HTML に於ける class 属性の扱ひに就いて考へて行くと HTML の本質やら限界やらが見えて来ます。
0
三宅龍太郎 @MIYAKE_ryutaro

ちょっと古い記事ですが、、、『Geekなぺーじ:HTML知識レベル』 geekpage.jp/blog/?id=2007/…

2014-11-10 22:47:28
三宅龍太郎 @MIYAKE_ryutaro

――レベル 5  このレベルの人たちは細かいMarkupの違いに関する議論に時間を割きます。 彼らはクラス名を考えたり、HTMLやCSSのコードを美しくするために数時間も使ってしまいます。

2014-11-10 22:47:48
三宅龍太郎 @MIYAKE_ryutaro

かつて class は「ごみ」と言ったら、このレベル辺の人(業界の人)から馬鹿にされた事がある。しかし何う考へても HTML に於ける class 属性なんて「ごみ」でしかない。そもそもマーク付けは「おまけ」。伝へるべき情報の本質は文章そのものなのです。

2014-11-10 22:48:34
三宅龍太郎 @MIYAKE_ryutaro

class 属性が「ごみ」である理由ですか? 周知のやうに制作者の任意の値で、しかも機械に読めるやうな定義もされない。こんなもん「ごみ」でなければ何だと言ふのか。人間が見て解り易いとか言ふウェブ屋がゐたけれど、その程度ならコメント文で十分だらうに。

2014-11-10 22:57:43
三宅龍太郎 @MIYAKE_ryutaro

class 属性オンパレードな HTML 文書を嬉しさうに作るウェブ屋は何処かをかしい。斯う云ふのに限って「 Web 標準」とか五月蠅い。

2014-11-10 22:58:54
三宅龍太郎 @MIYAKE_ryutaro

@miyake_ryutaro class の値は制作者の任意であると云ふ事。だからコメント文を附けるのと基本的には同じなのです。今でもこの辺の事が理解できないウェブ屋がゐる。

2014-11-11 11:49:33
三宅龍太郎 @MIYAKE_ryutaro

さう言へば class は要素( Hn や P などの要素型で囲まれる内容)の「小分類」であると言った偉い人がゐたけれど、その定義が何処にも無いのだからオフィシャルには何の分類にもならない。制作者の「俺様分類」なら解るけれど、そんなローカルルールなんぞ知った事ではありません。

2014-11-11 11:50:11
三宅龍太郎 @MIYAKE_ryutaro

要素を細かく分類したいのなら HTML ではなく XML などを用ゐるべき。

2014-11-11 11:53:12
三宅龍太郎 @MIYAKE_ryutaro

と云ふやうな子供にも解るやうな事が、何故か當時の「 HTML 原理主義者」には解らなかった。class は「ごみ」だから適当で良い。出来れば無いのが望ましい。以上。

2014-11-11 11:58:18
三宅龍太郎 @MIYAKE_ryutaro

んーと。何度説明しても解らない人には解らないやうですが、最う一度、解り易く説明します。何故、class は「ごみ」で、出来れば無い方が良いのか。

2014-11-11 16:39:58
三宅龍太郎 @MIYAKE_ryutaro

御馴染みの Hn とか P といった要素型は DTD に依って定義されてゐるので、リソースを解析する HTML パーザなどは DTD を参照して Hn や P などを読むことが出来ます。P で囲まれてゐれば、その部分は段落だらうと推定する。(推定であって決定ではありませんが)

2014-11-11 16:40:52
三宅龍太郎 @MIYAKE_ryutaro

最う少し解り易く言ふと、パーザなどの機械は人間と違って自然言語が読めない。だから DTD などの定義ファイルがないと自然言語に限らず Hn や P でさえも読めないのです。ただの意味不明の文字列としか認識できない。なので特定の文字列を機械が読めるやうに定義してやる必要があります。

2014-11-11 16:41:48
三宅龍太郎 @MIYAKE_ryutaro

そこで次のリソースを見て下さい。『class属性(当該要素のクラス名) - HTML 4/XHTML 1 リファレンス』 marguerite.jp/Nihongo/WWW/Re…

2014-11-11 16:42:18
三宅龍太郎 @MIYAKE_ryutaro

リソースの中に「要素の持つ意味を区別する」といふ見出しがあって、次に「同じ要素でも意味が異なると言う場合に意味を記述すると言う使い方も出来ます」と書かれてゐる。これをかつての HTML 原理主義者は要素の小分類と呼んだけれど、そんな意味の区別なんて不可能です。

2014-11-11 16:42:51
三宅龍太郎 @MIYAKE_ryutaro

先述のやうに HTML パーザなどは定義が無ければ意味不明の文字列としか認識できません。class="ok" も class="err" も解釈できない。つまり class の値に就いて定義されてゐないために、機械には等しく意味不明であると云ふ事。だから区別なんて不可能です。

2014-11-11 16:46:48
三宅龍太郎 @MIYAKE_ryutaro

要するに、人間がソースを見たときに意味の区別をするのに便利といふだけ。ならばコメント文と何ら変はらない。で、人間がソースを見たときに便利といふだけなら、そもそも人間は地の文を読めば解るのでありまして、class 属性を附けるまでもない。依って class は「ごみ」なのです。

2014-11-11 16:47:24
三宅龍太郎 @MIYAKE_ryutaro

繰り返しますが、定義されない値を持つ class 属性は、パーザなどの機械にとっては意味不明の文字列としか認識できません。斯う云ふ物を「ごみ」と言ひます。

2014-11-11 16:49:30
三宅龍太郎 @MIYAKE_ryutaro

こんな「ごみ」をてんこ盛りにするウェブ屋は何うかしてゐる。若しセマンテックとか言ふのなら XML を用ゐた方がよい。制作者が要素型を定義する仕組みがあります。

2014-11-11 16:55:31
三宅龍太郎 @MIYAKE_ryutaro

@miyake_ryutaro 今のところ class 属性はスタイル( CSS )の為にあると言って良い。まあ、見た目の為ですね。意味的には何ら貢献してゐない。そもそも HTML では、さう云ふ仕組みになってゐないのです。

2014-11-11 18:28:33
三宅龍太郎 @MIYAKE_ryutaro

@miyake_ryutaro さう云ふ仕組みになってゐないのに「要素の持つ意味を区別する」といふのは欺瞞と言はざるを得ません。欺瞞でないのなら、制作者の心構へみたいな物を説教してゐるのでせう。ウェブ屋は何故か説教を垂れたがる。

2014-11-11 18:29:02
三宅龍太郎 @MIYAKE_ryutaro

@miyake_ryutaro ええと、一つ基本的なことを書いて措きます。HTML は SGML アプリケーションですが、基となる SGML 文書の構造は次のやうになってゐる。  ・ SGML 宣言  ・ DTD  ・文書インスタンス

2014-11-11 18:45:08
三宅龍太郎 @MIYAKE_ryutaro

@miyake_ryutaro HTML ではいはゆる DTD を固定して、文書型宣言と文書インスタンスに簡略化しました。この簡略化に依って爆発的に普及したのですが、飽くまでも基になってゐるのは SGML なのです。

2014-11-11 18:45:37
三宅龍太郎 @MIYAKE_ryutaro

@miyake_ryutaro DTD に依る定義がないと「俺様の勝手な値」が何う解釈されるかは不定と言ふしかありません。

2014-11-11 18:48:20
三宅龍太郎 @MIYAKE_ryutaro

@miyake_ryutaro class 属性に意味を持たせる仕組みになってゐない以上、それに依る「区別」は不可能である。以上です。

2014-11-11 18:50:17