フレームの代わりにPHPを使うを読んでのツッコミ。“フレームを使う代わりにPHP言語の include 命令を使いましょう”というような記事。というのも、フレームは使うべきでないから、だとか。“フレームサイトでPHPを使う”という記事をいずれ発表する予定なんですが、前置きというかウォーミングアップとしてこのあたりの内容から考えていこうかと思います。
ちょと極端な話をします。
オレ、framesetってのはプラグインやアプリケーション的な解釈をした方が良いと思ってます。というかむしろ「(複数の)フレーム構造を持ったものは何らかのアプリケーションです」みたいな。例えば「2ちゃんねる」。多分、日本最大のフレームサイトなんじゃないでしょうか、あそこは。専用ブラウザ、なんてのもあります。オレがたまに使ってるのはホットゾヌ。これ、どこからドー見てもフレームの塊ですな。メーラーもフレームですな。ああ、FFFTPもだ、イラレもだ、フォトショもだ、アクロもだ、メディプレもだ、iTunesもだ、エクスプローラーフォルダもだ・・・、と見渡せばフレームの山。断言してもいい。フレーム構造を持たないアプリケーションは無い。(もしあったらゴメンナサイ)
さて、題目は“PHP(include)はフレームの代わりになるか?”なんですが、簡単に要約させてもらうと、
一見、何の問題も無いような内容。のようですが、それは《フレームの代わりじゃないんじゃ》と思うんですよね。オレは、フレームの本質って文書とナビゲーションを物理的に引き離す為のものだと思ってます。で、link要素で論理的に“リンク”させる、と。単独ページ参照時用に目次参照のアンカーくらいは入れるべきでしょう。シンプルイズベスト。ブログなんかでも、カレンダーやらジャンルやらトラバやら何やらのアンカーに埋め尽くされてるのがあるけど、アレはダメ。人様に見せるモノじゃない。散らかった部屋に人を招待して「この方が物が取りやすくて便利なのよ」てのと大差ないです。文書内に収まってしまっているもんだから、何がなんだかよくわからない。「ブログこそフレームにすべきなんじゃねーのか」そんな気さえしてしまいます。まあ、ブログうんうんはどうでもいいです。あれは落書帳みたいなものですしね。そのお話はいずれ・・・。
同じファイルがどーのこーのではなく、フレームだろうと非フレームだろうと共通項を同一ファイルから読み込むのは言わばセオリー。フレーム化することで結果的にそういうことになるのは認めますが、あくまでフレームの本質は文書とナビゲーションを物理的に引き離す為のもの。includeを学習出来るという点においては「フレームの代わりにPHPを使う」記事はとてもわかりやすいとは思います。しかし、それは=フレームとしての役割は果たさないでしょう。必ずしも同一サーバーからincludeするとは断言できませんし。サーバーを超えたinclude、素人には無理でしょう。というかオレも方法の想像すら付きません。せいぜいJavascriptで似たようなことをやる程度。
それが文書とナビゲーションの物理的切断であることは前述した通り。文書と目次を明確に二分するということです。見た目だけなら、ScriptとCSSの組み合わせで表示・非表示を切り替えることも可能ですが、そういうことじゃない。そういうスピリッツじゃなくて。
まず、可変。表示面積を閲覧者が自由に調整できるということ。そして閲覧者が自由にナビゲーションを消すことができるということ。tableレイアウトにせよ、CSSレイアウトにせよ、左右分割レイアウトにした時点でこれらの自由は剥奪されてしまいます。ウインドウをせまくした時如何にそれを回避させる術を用意するか。「ウチはCSSレイアウトだからそれを切ればいい、その為のCSSです、CSSとスクリプトの組み合わせでナビのon-offも出来ますがなにか」オレもそう思っていた時期がありました。それもアリでしょうし、そこまでこだわらなくても別に問題視するようなことではないのかもしれません。しかし、そのCSSを切った瞬間、縦に並んだリストマークアップ部分(とは限りませんが一般例として)が現れてデザインも失われ、表示位置情報も変わって、一瞬の戸惑いというものがかならずあるはず。「ウチはそれを考慮した代替スタイルを用意してますがなにか」という人もいます。こういう人は「わかっている」人なのでいいんです。偉いです。そう、考慮してれば問題ないんですよ。別に「フレーム使えやごるぁ」と叫んでるわけではないので。正しいマークアップとCSSの組み合わせが必ずしも正しい文書公開のあり方ではないのではなかろうか、そういう話をしています。
フレームのもたらす恩恵とは、移動距離の短縮にあると思います。そう、最速インターフェースとも言えるかな。その仕組みは「選ぶ→出てくる」という何とも単純な2動作のみ。世の中のものは大抵、そういう作りです。
何が言いたいのかというとですね。「選ぶ→読む→戻る(移動)→選ぶ→読む・・・」こういう仕組みのサイトって多いです。読んで戻ってまた読んで。「include埋め込みナビにおいてもこの2動作は可能じゃん」という意見もあるんですが、ん、ちょと想像してみて下さい。例えば文書が長文だったとします。下(最後)まで読みました。よし他のも読んでみようかな。
ここでストップ。
次にあなたのとる行動は・・・。
瞬時に次の行動に移行できるかどうか。どうでしょう。
とどのつまり、人斬りは所詮死ぬまで人斬り
、「フレームは所詮消すまでフレーム」。フレームの代わりなんてものはありませんよ、と。フレームとしての「見た目」ならばどうとでもできます。CSS擬似フレーム、なんてのもありますしね。但し、あくまでフェイク。本質はもっと別のところにあるのですよ、ということをほんの少しでも感じ取っていただけたら、と思います。