フレームを使ってもいいじゃん。

HTMLのフレームは今や使うべきではないとされている訳ですが、使ってもかまわないもの、あるいは使った方が良いんじゃないかというものもあるんじゃないかと思う訳ですけど。特にWebアプリっていうかなんかそういうの。
例えばフレーム使用の是非について — Website Usability Infoなんかは以下を使うべきではない理由として挙げます。

  1. URLを他人に紹介する/お気に入り(ブックマーク)に登録する際の弊害
  2. プリントアウトにおける弊害
  3. 検索エンジン経由で来訪した際の弊害
  4. アクセシビリティ上の弊害
  5. アクセスログ解析における弊害
  6. SEO検索エンジン最適化)の観点での弊害

これらの理由は納得できます。他人が見るサイトであればフレームは使うべきではないでしょう。
でもね。他人に見せないページならいいじゃん。
具体的にいえばblogの管理画面やRSSリーダーとか。


だいたい上の問題点はAjaxについてもいわれていることで、だけどAjaxはイケイケどんどんな訳です。なんでやねん。しかもブラウザごとの実装にかなりのムラがあるJavaScriptに比べてframesetへの対応はほぼ一様です。それに、無理にAjaxで実装するよりもフレームの方が保守も簡単だよ?
それをわざわざフレームを避けておきながら2カラム構成の画面設計で、メニューを選ぶ度にページ全体を再読み込み。はてなダイアリーなんか酷いもんで、サブメニューを動的に開かないもんだから、サブメニュー項目を選択するためには画面全体について2回も再読み込みをする羽目になります。(しかもメニュー項目名も分類も適切に設計されていないので探しづらい。)
それと、フレームと同じことはCSSでも出来るって思ってる人、それ本気?全てのページでメニューを書き出すなら、メニュー部分を書き換えるには、フレームを使わない場合、全てのページを書き直さなきゃ行けないんだよ?PHPとかSSIとか、鯖側の技術を使えば良いって、本当に思ってる?そうして得られるメリットは、フレームを使った場合のメリットに本当に勝るの?フレームの幅は簡単に動的に変えられるけど、フレームを使わない場合はJavaScriptを書かなきゃいけないんだよ?


Webの画面は全て他人に見せるもの(public)と勘案している人ならframesetを完全禁止しようという意見になるかもしれませんけど、web上のプライベート(private)な領域の存在を認めれば、「他人のために」frameを完全禁止するというのはweb全体に対する普遍的理想ではないといえるんじゃないでしょうか。
っていうかprivateでなくても、条件に合わない人に見られなくても良い(protected)ページであればそんなん意識しなくていいし。絵画展における全盲者への配慮なんてのを、全ての展覧会主催者に強制するのはどうかと思います。