「とほほのWWW入門」というサイトの中に「スタイルシート論争について」というリソースがあります。いちおう W3C と「W3C 擁護派」に対する批判のようですが、どうも W3C の思想を理解しないまま批判していたり、W3C の思想を理解していない、えせ W3C 擁護派とでも言うべき意見を批判していたりしているような気がします。そこで、感じたことを書いておきました。
普段は特に一部を取り上げて……という形になるのですが、今回はほとんど全編にわたって感じたことがあったので、特に項目ごとの見出しを設けてはいません。
以下、引用部の中に引用部があるように思えるかも知れませんが、それは単に原文のマーク付けを尊重したからであって、孫引きではありません。念のため。
「HTMLで見栄えを記述すべきじゃない!!」、「全員スタイルシートに移行すべきだ!!」、「古いブラウザは捨て去るべきだ!!」などが、彼らの言い分の例なのですが・・・
そんなことを言っている人など、見たことがないのですが……。
「HTMLで見栄えを記述すべきじゃない!!」
と言うのは、まあ聞かないこともありません。私も言っています。しかし、これはむしろ「HTMLで見栄えを記述することは出来ない」と言った方が近いのです。
HTML でも見栄えの記述が出来るではないか、HTML3.2 では実際に table や font で見栄えの記述をしていたではないか、などと思っている人もいるかも知れません。しかし、それは違うのです。table や font といったタグは、それらが table 要素や font 要素であることを示しているだけで、そこにどういったスタイルが適用されるかまでは規定していません。
たとえば、表でレイアウトをしたつもりになっていても、実際にはブラウザはそれを表であると理解し、表として表示しているのです。その結果がたまたまレイアウトされたように見えてしまっているに過ぎません。これは仕様によって保証された表示結果ではなく、単なる偶然に過ぎませんから、たとえば表の表示スタイルを変えたりすると破綻することがあります。この破綻はブラウザのバグでも何でもなく、予期された正しい動作です。
「全員スタイルシートに移行すべきだ!!」
というのは何を言っているのか分からないのですが、「必ずスタイルシートを使わなければならない」という事でしょうか。仮にそうだとして、そんなことを言っている人が本当にいるのでしょうか。もちろん、スタイル指定をしなければならないなどという決まりはありません。HTML4.01 Strict でマーク付けしてスタイル指定はユーザやブラウザに任せるという選択肢もあり、これには全く問題ありません。見栄えにこだわりたい人だけがスタイル指定を行えば良いのです。
「古いブラウザは捨て去るべきだ!!」
というのも謎過ぎます。当然、スタイルシートを使ったリソースは、スタイル指定がなくても問題なく読めるのです。これのどこが古いブラウザを捨て去っているのでしょうか。もちろん、スタイルが適用できなければ読めないようなマークアップというのはあり得ますが、それはスタイルに依存したマーク付けをするのが間違っているのであって、スタイルシートの仕組みそのものに問題があるわけではありません。
すべての人がスタイルシートに移行すべきか?
〜 放送はぜんぶワイドテレビに!? 〜W3C擁護派の人達の中には、「すべての人が即座にスタイルシートに移行すべきで、それをしないのは怠慢であり、W3Cに対する冒涜だ」のように感じている人がいるようです。
「いつまでも、古いブラウザのことを気にしているから、ブラウザをアップデートしない人が増えて、W3C様の教えが具現化できないじゃないか!」という意見もわかるのですが・・・
本当にそんな人がいるのでしょうか? 少なくとも私には、そんな意見は理解出来ません。先にも述べましたが、古いブラウザでも問題なく読めるようなマークアップを行い、それに対してスタイルを適用すべきです。
なお、W3C は常に backward compatibility(後方互換性)に配慮しています。HTML4.01 に Transitional DTD があるのはそのためですし、"backward compatibility" に類する言葉は、HTML4.01 に少なくとも 16回出てきます(DTDのコメントも含む)。W3C が古いブラウザのことを考えていない、などと言うことは決してありませんので、誤解しないようにしてください。
ワイドテレビの規格ができたんだから、すべての放送局はワイド放送以外流すべきではない。すべての人は古いTVを買い代えるべきで、古いTVを持っている人なんか無視するべきだ!! なんて変ですよね。
これまた、誰がそんなことを言っているのでしょうか?
そもそも、ワイド放送って古いテレビでも問題なく受信出来るのではありませんか? うちのテレビはワイドに対応などしていませんが、新聞のテレビ欄に「ワイドクリアビジョン」と書いてあって残念な思いをしたという記憶はありません。ワイド画面で見たいと思う人はテレビを買い換えても良いし、ワイド画面で見る必要はないと思うなら買い換えなくて良いわけです。
インデントに<BLOCKQUOTE>を使うのは悪か?
私は、このページにも左右のインデントの目的で <BLOCKQUOTE> タグを使用しています。HTMLリファレンスで <H1> をフォントの大きさ変更のために用いるべきではないと言っておきながら、<BLOCKQUOTE> をインデントに用いているあたり、自分でも情けないと思うのですが・・・
今時点で代わりになるものもないし、ある目的で作成されたものが、本来とは別の目的で使用される例は、実生活にもいろいろあることだし・・・という(ちょっと苦しい)理由をつけてそのままにしています。
おかげさまでこのような形になりましたが、「孫引きではありません」という註をつけることで解決してみました。「引用のように見えるかも知れませんが、引用ではありません」などと註をつけておけば、とりあえず問題はないと思います。
それより私が情けないと思うのは、とほほさんが <P> を改行のために使っていることです。BLOCKQUOTE要素の中にいちいち匿名ブロックがあるのですが……。
これはあまりにも酷い(というかそもそも HTML4.01 の文法に適合しない)ので、ここに引用した部分については BLOCKQUOTE の中に P要素を一つ補っています。
見栄えにこだわるのは無意味ではないか?
何故そこまで「インデント」などの見栄えにこだわるのか?インデントなどの「見栄えは」無意味だという意見もいただきました。だって、見栄えは大事でしょ。「見栄え」で飯を食っている人が大勢いるこの世の中で、「見栄えは無意味だ」は、その人達に対する侮辱でしょうか。
「見栄えは無意味」ではなく、「HTMLでは見栄えは無意味」、より正確を期するなら、「HTMLでは見栄えにこだわることが不可能」なのです。では見栄えにこだわる人はどうするかというと、HTML に特定のスタイルを適用するわけです。見栄えが大事だからこそ、スタイルシートを使うことになります。もちろん、見栄えにこだわらないならスタイルシートを使う必要もありません。
タグという言葉は?
そういえば、「タグ」という言葉にもピクピクする人がいるようですね。HTML4.0に仕様書には「エレメント」と「開始タグ」「終了タグ」という言葉は存在するが、「タグ」という言葉は存在しない・・・らしいのですが(本当?)・・・
本当かどうか疑問に思ったなら調べれば良いと思うのですが、HTML4.01 を一通り読んだのであれば調べるまでもないはずです。HTML4.01 3.2.1 の文章は有名ですが、引用しておきましょう。
Elements are not tags. Some people refer to elements as tags (e.g., "the P tag"). Remember that the element is one thing, and the tag (be it start or end tag) is another. For instance, the HEAD element is always present, even though both start and end HEAD tags may be missing in the markup.
見て分かるとおり、開始タグと終了タグをまとめて tag
と呼称しています。さらに、RFC1866 を見ると
tag Markup that delimits an element. A tag includes a name which refers to an element declaration in the DTD, and may include attributes. [SGML]
start-tag Descriptive markup that identifies the start of an element and specifies its generic identifier and attributes. [SGML]
end-tag Descriptive markup that identifies the end of an element. [SGML]
という具合に "tag" という用語がしっかりと定義されていますし、"start-tag", "end-tag" についてもそれぞれ個別に定義しています。
どう見ても「開始タグ」「終了タグ」とは別に「タグ」という用語が用いられているようにしか見えないのですが、何を根拠に 「開始タグ」「終了タグ」という言葉は存在するが、「タグ」という言葉は存在しない
、などと言っているのでしょうか。全くもって謎ですが、ひょっとしてひょっとすると、どこかの本が言っていることを鵜呑みにでもしたのでしょうか?
どうして、すべての人が仕様書の言葉をそのまま使わなくてはならないのか私には理解できません。日本国民は、著作権について論じる時も、著作権法に述べられている用語しか使用してはならないのでしょうか・・・
何故そうなるのでしょうか。むしろ私には、どうして「タグと要素とは区別すべき」という意見が「すべての人が仕様書の言葉をそのまま使わなくてはならない」という意見になってしまうのかが理解出来ません。それとも、本当に後者のようなことを主張している人がいるのでしょうか。もちろん、「HTML の解説者たるとほほさんは、仕様書の言葉を正確に使った方が良い」という意見が出るのは理解出来ますし、ある意味当然のことだと思います。
ちなみに私は割といい加減なので、"content" について JIS X 4151 の訳語が「内容」であることを知りつつ、それをあえて無視して「中身」と呼んだりすることが頻繁にあります。これはある意味、仕様の用語を無視する形ですが、特に問題はないと思っています。混乱を招くことがないからです。……混乱を招くからやめた方が良い、という意見は今のところ無いようですので。
タグと要素とは明らかに違う概念なので、両者は区別すべきです。「要素」を「エレメント」と呼ぶのは問題ありませんし、ほかに適切な語があればその語で呼称しても良いでしょう。たとえば「四大」とか。
ただ、要素のことを「タグ」と呼ぶのはやめた方が良いと思います。タグと要素との区別がつかなくなりますから。
……もちろん、要素とタグを区別する必要がない、という意見なら話は別です。ただ、それは単に区別が付いていないだけではないかという気がします。
ホームページやHPは?
「ホームページ」という言葉や「HP」という略語にもピクピクする人がいます。「ハッカー」という言葉にもピクピクしているんでしょうね。私は、言葉の意味は時代によって変かするもの。言葉は複数の意味を持ち、状況に応じて判断されるべきもの。という思想の持ち主ですので、あまり気にならないのですが・・・
「ホームページ」という言葉を「ホームページ」の意味で使うのはもちろん構わないと思います。ただ、それがホーム以外のページに適用されると、いらぬ混乱を招くおそれがあります。たとえば、「Yahoo! をホームページにしたら?」と言ったとき、ブラウザ起動時に Yahoo! が表示されるように、という主旨が伝わらなくなってしまうかもしれません。ホーム以外のページを「ホームページ」と呼ぶのは間違いであり、そのように呼ぶべきではない、と言う主張には根拠も合理性もあると思いますから、私はそのような主張を尊重しています。
かつては「トルコ風呂」とか「ビジネスガール」のような語が使われていましたが、これが現在では使われなくなったのは、これらの語の持つ問題点を多くの人が認識し、使用を控えたからです。問題のある用語を駆逐するのは不可能なことではありません。
でも、少なくとも、「ヒットポイント」を「HP」と略すのは許せるのに「ホームページ」を「HP」と略すのは許せないとか、前後の文章から「ホームページ」の意味であることがわかるのに、わからない振りをして攻撃をしかけてくるのは、時代の流れについていけない人なんだなぁ・・・という感想を抱いてしまいます。
すみません。ちょっと、脱線してしまいました。
もちろん、脱線だと分かっているのにわざわざ書いたのは、それが言いたくてたまらなかったからでしょう。
なぜ Hewlett-Packard や Hit Point を「HP」と略すことを許容できるのかと言えば、これは単純です。Hewlett-Packard や Hit Point を「HP」と略すことには根拠があるからです。
Hewlett-Packard 社は自ら「HP」と称していますし、そのロゴは "hp" を意匠化したものです。D&D® のルールブックには "hp" とはっきり書いてありますし、HP という概念が登場するほとんど全てのゲームにおいて、HP は「Hit Point」でも「ヒットポイント」でもなく「HP」と表記されており、むしろ HP が正式な表記となっている事すらあります。たとえば、DARK KINGDOM 2 というゲームのルールには HP という表現がありますが、これが何の略なのかは書かれていません。これが Health Point の略でないと断言するだけの根拠はありませんから、これはこのまま HP と呼ぶしかありません。
また、「HPって何ですか?」と尋ねられたときの事を考えてみてください。「HP社のことです。Hewlett-Packard社のロゴを見れば分かるとおり、Hewlett-Packard社は自ら HP と称しています」「少なくともこのゲームでは、hp は Hit Point の略です。ルールブックにそう書いてあります」など、はっきりした出典と共に堂々と答えることが出来ます。
けれども、Home Page を「HP」と略すことには根拠がありません。深い考えもなしに勝手に略しているに過ぎないのです。RFC などの権威ある文書が「HP」という表現を使っているのなら、それはどんどん使って良いでしょう。しかし私は浅学にしてそのような文書を知りません。「HPって何ですか?」と尋ねられても、「ホームページの略です。この略は世間一般に通用しています」と答えるのが関の山です。後は、「世間一般って何ですか?」「新聞で使われています」「マスコミの用語は世間の常識ですか?」などと泥沼にはまって行くしかありません。
なお、誤解している人がいるようなので言っておきますが、ここで私が言っているのは「Hewlett-Packard や Hit Point を HP と略すことには根拠がある」「HomePage を HP と略すことには根拠がない」ということだけで、「根拠がない省略はしてはならない」とまでは言っていないので騙されないようにしてください。HP と略すべきで無いという主張がなされる最大の理由は、「根拠がないから」ではありません。あるネットワーカーは「Hewlett-Packard社」に対して敬意を払っています。また別の人は、「HomePage を HP と略されると不愉快だ」という人が存在することを知っており、人に不快感を与えてでも略さなければならないという理由が思いつかないのです。
HTMLはもはやSGMLではない
SGMLは、論文や仕様書やマニュアルのような「情報」を理路整然と記述することを目的として考案されたものです。初期のHTMLも同じ目的で開発されましたが、現在のHTMLは「情報」だけでなく、「見栄え」「インパクト」などいろいろなものを伝えるものとして利用されています。
初期の HTML は、SGML 応用系と呼べるようなものではありませんでした。その名残が「お尻<P>」です。HTML が SGML 応用系として確立したのは、HTML2.0 になってからです。
また、現在の HTML も見栄えを伝えることは出来ません。たとえば、http://tohoho.wakusei.ne.jp/wwwxx088.htm のリソースですが、私の環境では、引用部(?)が緑色の二重枠で囲まれています。これはおそらく、とほほさんの意図した見栄えではないでしょう。本人は見栄えを伝えているつもりでも、実は見栄えを伝えることは出来ていないのです。伝わっているのはインデントという見栄えではなく、それが引用であるということです。そして、見栄えを伝えるためにスタイルシートという仕組みが用意されています。
インパクトを伝える……というのは何のことを言っているのか良く分かりません。
また、SGMLを利用するのは技術者に限られているのに対し、HTMLは、小学生も、おじいちゃんも、おばあちゃんも、近所のおばさんも使います。
そのために、各メーカーは「オーサリングツール」というソフトウェアを開発しています。
利用目的や利用者が異なるものを、無理矢理同じ技術や思想で縛ろうとしているところに、W3Cの無理があるのではないでしょうか。
そもそも、HTML ではレイアウトや見た目などを規定することが出来ません。そして W3C は、「HTML は文書の論理構造を規定するものだから、論理構造のために使おう。見栄えのためにはスタイルシートというものがあるからそれを使おう」と言っているのです。
論理構造と見栄えを分離することには様々なメリットがあります。たとえば、文書を読みにくいと感じたユーザが、「段落間が狭いので、マージンをもう少し増やしたい」とか「見出しの文字が大きすぎるので、もう少し小さくしたい」などと考えたとしましょう。そんなときはスタイルを変更すれば良いのです。
p{ margin: 1em !important; } h1{font-size: 120% !important; }
このようなユーザスタイルシートを適用し、あとはユーザの好みに応じて数字を適度に調整するだけです。非常に簡単です。
しかし、これをうまく行うには、論理構造と見栄えが分離されていることが必要なのです。「HTML でレイアウトを規定し、それで規定しきれない部分についてだけスタイルシートを使う」といようなやり方で記述されたページは、デフォルトではうまく見えるかもしれません。しかし、少しスタイルを変えようとすると、とたんに無理が生じてしまいます。たとえば上記のスタイルは、そもそも p や h1 が使われていないページには無力ですし、p や h1 の中で <font size>
などが使われていると、結果は予想できません。
見栄えと論理構造を分離しておけば、各々のユーザに適したスタイルに変更することが容易になります。アクセシビリティの向上に繋がるのです。
利用者が仕様を守る精神も必要ですが、利用者が守ることができる仕様を作る精神も必要だと思います。HTMLはもっと文法をルーズなものにして、初心者でも記述しやすいようにしてほしいものです。
どうも私には理解出来ないのですが、HTML のどこが初心者に記述しづらいのでしょうか?
W3C の提唱する HTML の文法はかなりルーズですし、簡単です。文書型宣言と <TITLE> </TITLE> という二つのタグだけで正当な HTML となり得ますし、とりあえず TITLE要素、P要素と EM要素あたりがあれば、一通りの記述は出来ます。先頭に文書型宣言を書き、タイトルの始めと終わりにそれぞれ <title> </title> をつけ、段落の始めと終わりに <p> </p> をつけ、要素の入れ子関係に気をつけながら、強調したい部分の始めと終わりに <em> </em> をつけるだけです。アンカーをつけようとするとやや難しくなりますが、それにしても実に単純かつ簡単だと思います。
論理マークアップ自体は実に簡単なものなのです。しかも、スタイルシートを自分で書かなければならないという決まりはありません。他人があらかじめ用意しているスタイルシートを、自分の書いた HTML 文書に適用してしまうことも出来ます。これなら、ユーザは気に入ったスタイルを選ぶだけで良いことになります。
HTML が難しいと感じるのは、HTML で見栄えをコントロールしようとするからです。本来無理なことをやろうとすれば、難しくなるのは当然です。
HTML4.0やCSSは「標準」ではない
HTML4.0やスタイルシート(CSS)は「標準」なんだから従うべきという意見がありますが、嘘です。HTML4.0、CSS1、CSS2 は「標準(Standard)」ではなく、「勧告(Recommendation)」です。Recommendationは「推奨」とも訳されます。
もちろんこれはその通りです。ちなみに RFC も標準ではありません。ですから、「事実上の標準」などと言われたりします。
W3C の仕様や RFC に従いたくないと言うならそれはそれで問題ありませんが、では、何に従うのでしょうか。もちろん自分で仕様を策定しても構わないわけですが、それに従ってくれる人がどれくらいいるのでしょうか。
ちなみに、国際標準化機構 ISO は HTML の国際標準として ISO/IEC 15445 という規格を制定しようとしています。これは HTML4.0 Strict をベースにしていますが、さらに厳格です。FONT 要素などが使えないのはもちろんのこと、<HTML> や <TBODY> が省略できませんし、SCRIPT 関係の要素や属性は使えませんし、Hn や ADDRESS の出現位置に関しても厳しくなっています。
さらに、HTML4.0 の邦訳が JIS TR X 0033 として JIS の標準情報となる動きもあります。
インターネット上の標準は通常IETFという機関で、最低2つ以上の実装例があり、互換性が保たれているか、仕様書の記述にあいまいな個所がないか、現状からの移行に問題は発生しないかなど、十分な審議をもって可決されます。
そう言われるのなら、HTML2.0 に従えば良いと思います。日本語を使いたければ HTML2.x に従いましょう。これらは IETF の定めた仕様です。
ちなみに、HTML2.0 や HTML2.x には FONT も TABLE もありません。見栄えに関する要素や属性が大量に追加された HTML3.2 は IETF の規格ではなく、W3C の規格です。
ところが、W3Cはこうした手順を十分にふまないまま「勧告」として公開してしまいした。逆に言うと、そういう手順をふまえずに発表しているから「標準」とは言わず、「勧告・推奨」としているのかもしれません。
「手順を十分にふまない」とはどういうことなのか、私には理解出来ませんでした。
当然ですが、W3C の仕様はいきなり Recommendation となる訳ではありません。まず Working Draft として公開され、次に Proposed Recommendation の段階を経て Recommendation となります。当然、Working Draft や Proposed Recommendation は広く意見を求めるために公開しているわけで、この段階でいろいろな議論がなされます。
さらに、Recommendation の段階でも広く意見は求められていて、集められた意見は Errata として反映されたり、次の Recommendation に反映されたりします。その良い例が HTML4.01 です。HTML4.0 から HTML4.01 への大きな変更点の一つは IMG要素 と FORM要素 に name属性が追加されたという点ですが、HTML4.01 A.1.1. を見てください。
13.2 The IMG element: Addition of the name attribute for backwards compatibility.
と書かれています。backward compatibility とありますが、過去の HTML 仕様で IMG や FORM に name 属性が定義されたことは一度たりともありませんから、これは間違いなくブラウザの実装との互換性のためという意味です。W3C は、現存するブラウザの実装を考慮して、わざわざ属性を追加しているのです。「W3C がユーザやブラウザの都合を考えていない」などというのは誤解です。
バグだらけのNetscape Communicator 4.0はNetscape社の怠慢か?
NC4.0のCSS1実装がバグだらけで使い物にならないのは事実です。しかし、これは、Netscape社の怠慢だったのでしょうか?
私自身ソフトウェア会社に勤務しています。会社の利益、自分の給料、妻子のことを考えなければなりません。
Netscape社が独自拡張要素をどんどん追加したのは、世間一般に Netscape社のブラウザでなければ見られないリソースを普及させることによって自社のシェアを不動のものとするためだった、と見る向きがあります。この戦術は HTML のアクセシビリティ、相互運用性、という観点からすればマイナスですが、Netscape社の利潤追求という観点からすればプラスとなります。
企業というものは基本的に利潤を追求するものであり、その点で非営利団体の W3C とは根本的に異なります。ある意味、Netscape にとって W3C は邪魔者なのかも知れません。
Internet Explorer と Netscape Navigator の戦争が激化し、バージョンアップ版の出荷を競い合っている最中、Microsoft社の資金力に Netscape社があえいでいる最中にあんな仕様を発表すれば、こうなることは予測できたのではないでしょうか。
私にはとほほさんが何を言っているのか分からないのですが、「あんな仕様」とはどの仕様のことでしょうか? 仮に CSS1 のことだとしますと、どのあたりが「あんな仕様」と言われるほど酷いのか、私には理解出来ません。
ちなみに CSS1 が Recommendation となったのは 1996年12月17日のことです。意外と知られていませんが、これは HTML3.2 の 1997年1月14日よりも早く、だからこそ HTML3.2 では STYLE 要素が予約されていたわけです。当然、Working Draft はその前から公開されていました。そのため、Microsoft は Netscape Communcator 4 が出る前に Internet Explorer 3 で CSS1 の一部を実装することができたのです。もっとも、この実装はかなり酷く、IE3 は核兵器と並ぶ人類の負の遺産ではないかとさえ思います。NN4 もそうですが、これらブラウザが酷評されるのは CSS1 を中途半端に実装したからです。現在言われている CSS の欠点のほとんどは CSS の仕様自体の問題ではなく、これらブラウザの問題なのです。
なお、NN4 は IE3 に比べればまだマシだと思います。
もちろん、バグだらけのソフトを出荷したNetscape社に非が無い訳ではありません。でも、仕様を発表さえすれば、それを実装できるかできないかは、実装会社まかせというW3Cの行動にも非があったのではないでしょうか。
意味がさっぱり分からないのですが、W3C にどうしろというのでしょうか。当然ですが、W3C が仕様の実装を各ブラウザメーカに強制することなど出来ません。
とほほさんは、W3C が HTML に関する権利を主張して、ブラウザメーカには実装させないようにすれば良いと主張されるのでしょうか。それとも、W3C は既にブラウザに実装されているモノだけしか仕様として提唱してはならないという主張なのでしょうか。とほほさんが何を言いたいのかさっぱり分からないのですが……。
HTML4.0+CSS=アクセシビリティか?
W3C信者を魅了する言葉に「アクセシビリティ」なるものがあります。目の見えない人が音声ブラウザで読み出した時でも意味が伝わるといったことを目的とした言葉なのですが、次第に、「HTML4.0+CSSで記述している=アクセシビリティ」、「HTMLで見栄えを記述していない=アクセシビリティ」と思っている人も増えているように感じました。
WAI の提唱するアクセシビリティの概念には、「目の見えない人」はもちろん、「特定の色が判別できない人」「画像表示がオフ」「JavaScript がオフ」「スタイルシートがオフ」「テキストブラウザ」「メモリの少ない端末」「TABLE に対応していないブラウザ」「マウス操作が困難な人」など、ありとあらゆる環境が想定されています。もちろん、「画像表示も Java も JavaScript もスタイルシートもオンになっている Microsoft Internet Explorer 5」についても考慮されています。別に非視覚環境に限った話ではありません。
HTML とは本来、こういったありとあらゆる環境で利用できるものでした。その本来の姿に立ち戻ろうというのが HTML4 + CSS です。
なお、WAI は「HTML4.0+CSSで記述している=アクセシビリティ」、「HTMLで見栄えを記述していない=アクセシビリティ」などとは言っていませんが、「HTML4.0+CSSで記述している∈アクセシビリティ」、「HTMLで見栄えを記述していない∈アクセシビリティ」だとは言っています。
HTML4.0やCSSは、アクセシビリティの必要条件でも十分条件でもないと私は考えています。
<FONT SIZE=7 COLOR=red>出血大サービス!!</FONT>と、
<SPAN CLASS=strong>出血大サービス!!</SPAN>を、音声ブラウザで、「タグを無視するモード」と「タグも読むモード」で読み上げた時、どちらの方がより「伝わる」でしょうか。
私に言わせれば、どちらも駄目です。<SPAN CLASS=strong>
のようなマーク付けが望ましくないことは良く知られていて、CSS2 5.8.3 の末尾でも
Note. CSS gives so much power to the "class" attribute, that authors could conceivably design their own "document language" based on elements with almost no associated presentation (such as DIV and SPAN in HTML) and assigning style information through the "class" attribute. Authors should avoid this practice since the structural elements of a document language often have recognized and accepted meanings and author-defined classes may not.
という具合に、SPAN や DIV などに class をつけるようなマーク付けを濫用すべきでない旨が述べられています。<SPAN class="strong">
より <STRONG>
の方が良いと言うことです。はからずもとほほさん自身が述べているように、<SPAN class="strong"> のようなマーク付けは「伝わらない」ことがあるからです。
もっとも、HTML には適切な要素がないために class に頼るしかないという場面もかなりあります。<SPAN class="date">
とか <DIV class="note">
とか。XML なら、これらはそれぞれ <日付>
, <メモ>
などとすることができます。
また当然ですが、HTML4.01 と CSS の仕様を全て満たしているからと言って、アクセシビリティの観点から望ましいと言えるとは限りません。たとえば、引用でもない部分を BLOCKQUOTE 要素とするようなマーク付けは、HTML4.01 の仕様を満たしています。しかし、引用部にさしかかったときに「以下は引用です」と読み上げてもらいたい、などと考える人にとっては不都合となることがあります。
アクセシビリティレベル
アクセシビリティは、「HTMLで見栄えを記述していない」ではなく、「見栄えの記述を無視しても理解できる」ことを観点にガイドやチェックリストを設け、その網羅度によってJISマークのようなマークをつけるようにして欲しいです。(すでにそういうガイドもありますが。)
当然ですが、FONT 要素などによる「見栄えの」マーク付けが良くないとされるは、単に見栄えだからではないのです。それらが良くないとされる理由は「FONT は駄目?」などでも少し解説していますが、詳しくは WAI の WAI Content Accessibility Guidelines や Techniques for Web Content Accessibility Guidelines を読んでください。「見栄え」とは関係のないガイドラインもたくさんあります。
この文書にはチェックリストも付属していて、A, AA, AAA の三段階(A なしも含めれば四段階)で評価できるようになっています。網羅度によるマーク(画像)も用意されています。まさにとほほさんの要求しているものを完璧に満たしているように思えるのですが、WAI は W3C の内部組織だから紹介したくなかったのでしょうか? ちなみに、Another HTML-lint の解説にも WAI のガイドラインに関する簡単な紹介があります。
なお、アクセシビリティに関しては「バリアフリーの扉」「こころWebからの提案」なども参考になります。
「とほほのWWW入門」の発言力
W3C擁護派の方から、「ホームページ作成界におけるわたし(とほほ)の発言力は大きいので、個人的な意見(W3Cを非難する記述)は自重すべきだ」という意見をこれまでに2〜3度いただきました。
個人的な意見に基づく批判は自由にすべきだと思います。問題は、その批判が的を射ているかということです。相手の主張を正しく理解していないのに批判すると、おかしな事になります。
たとえば、特殊相対性理論をちゃんと理解することなしに「双子のパラドックス」を持ち出して「アインシュタインの言っていることは矛盾している」などと批判したりすると、高い確率でツッコミが入ります。<SPAN class="red">
なんてのを紹介して「<FONT color="red">
で良いじゃないか」などと批判するのも同じです。突っ込まれるのは当然です。
私は、「スタイルシートを使うな」とは言いません。ただし、「今現在、使うとリスクがある」ということは言わなければならないと思っています。また、私の管理する「ラウンジ」上で、スタイルシートを使わないという選択をした人に対して罵詈をあびせる人が居れば、注意する必要があると思っています。
もちろん、「リスクがある」と言ってはならない、などという人はいないでしょう。もちろん、我々は IE3 の実装などもふまえ、そのリスクを承知した上で使っているのです。IE3 が em を誤解釈することは有名ですが、他にも様々なリスクが存在しています。「Another HTML-lint 結果の解説 おまけ」なども参考にすると良いでしょう。ただ、これらのリスクは CSS 仕様の欠陥によるものではありませんので、W3C を責めるのは筋違いです。
罵詈を浴びせる人に注意する必要があるのは全くその通りですが、それは「罵詈を浴びせたから」であって、スタイルシートとは関係ないはずです。なぜこんな所で出てくるのでしょうか。あるいは、スタイルシートを使っている人は態度が悪い、などという主張なのでしょうか?
W3Cの目標を実現しましょう
あれやこれやと言いましたが、最終的には、W3Cが目標としていることを目指しましょう。文法も極力標準に従ったものにしましょう。アクセシビリティも考慮しましょう。
ここで言う「標準」とは何のことなのか、私にはどうも分かりません。とほほさんは同じ文書内で W3C の Recommendation は「標準」ではない、という主旨の主張をしていますから、この「標準」が W3C の Recommendation のことを指さないことは間違いないものと思います。
とほほさんはいったいぜんたい何に従うべきだと言っているのでしょうか?
でも、現状からの移行措置、普及へのステップ、普及の容易性、一般利用者の立場になった仕様策定は大事です。W3Cが本当にやりたいことを実現するには、今のHTML4.0やCSSとはまったく違うものが必要なのかもしれませんが、目指すゴールは同じなのですから、よい方向へは向かっていくと思います。
これまた私には何を言っているのか理解出来ないのですが、「W3C が本当にやりたいこと」というのは何でしょうか?
W3C はまさに「現状からの移行措置」「普及へのステップ」のためにわざわざ HTML4.01 Transitional を作ったわけですし、「普及の容易性」「一般利用者の立場になった仕様策定」のために詳細な仕様書を書いて広く公開しています。HTML4.01 と HTML3.2 とを読み比べ、文書の量を比較してみてください。近年の W3C の努力がめざましいことが分かるはずです。
また、W3C は HTML文書作成者、WWWブラウザ作成者それぞれに対するアクセシビリティガイドラインも出しています。とほほさんは、こういった W3C の努力を全て知った上でこのような批判をなさっているのでしょうか?
ここでとほほさんの言っていることの多くは事実に反しているように思えます。残りの部分は、私には理解出来ませんでした。
Webサイト全般を「ホームページ」と呼び、さらにそれを「HP」と略すのが時代の流れなのかどうか、私には分かりません。ただ、時代の流れというものについて一言だけ言うならば、現在はもう HTML3.2 の時代ではなく、HTML4 Transitional から HTML4 Strict へ、そして XHTML1.1 へと流れつつあるところでしょう。その流れでは、構造とスタイルの分離という考え方がどんどん押し進められていくはずです。