top

フレームセットで四苦八苦~frameborderは何処に書く?

メインサイトの手直し作戦の続きです。

トップ頁の修正目処が立ったんで、次はフレーム頁をチェック。ここはFrontPageが書き出すタグそのままで何も手を触れてないので問題ないと思っていたんですが…出ましたよー、-240点! いや、素晴らしいマイナスぶり(笑)。ソフトが書き出すタグが間違っているというんでしょうか!?

エラー内容ですが、「frameborderはこのバージョンではサポートされてません」と出ます。しかしframeborderを使わずに、どうやってフレームの枠線を消せと? DOCTYPE宣言にはちゃんとフレーム用のがあるので、フレーム自体はサポートされているはず。ググっても解決法は見つからず。もう諦めようかムードが濃くなってきたところ、ふと思いついてヤフーのディレクトリから辿ってみたら詳しいサイトが見つかりました。

SUPER HTML4.0 REFERENCE

おおっ、ディレクトリにもいいサイトがあるじゃないか! それにこのサイト自体がフレームで出来ているので、これはいい参考になります。で、さっそく調べてみたところ・・・

■frameborderは<frame>内に書く
そ、そうだったのか、<frameset>内にframeborder指定があったからいけなかったのですね。それではframeborderは<frame>内に移動させてと…。title属性もいると?→書き加え。フレーム頁内ではtarget属性はいらないらしいのでそれも消す、と。で、保存したらば、保存ボタン押したとたんにFrontPageがせっかく描き直したタグを強制的に全部元に戻してくれましたよ、と。…おいおい、待てや、FrontPage!! FrontPage使ってる限り修正が出来ない(泣)ので、やむなくメモ帳開いて修正。そうして出来上がった「100点満点・W3C合格」のソースが以下のものです。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html lang="ja">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<title>リンク</title>
</head>

<frameset rows="75,*,20" title="フレーム">
<frame name="header" scrolling="no" noresize src="aaa.htm" frameborder="0" title="ヘッダー">
<frameset cols="125,89%" title="コンテンツ">
<frame name="side" src="bbb.htm" scrolling="no" noresize frameborder="0" title="サイドバー">
<frame name="main" src="ccc.htm" scrolling="auto" frameborder="0" title="メイン">
</frameset>
<frame name="footer" src="ddd.htm" scrolling="no" noresize frameborder="0" title="フッター">
<noframes>
<body>

<p>このページにはフレームが使用されていますが、お使いのブラウザではサポートされていません。</p>

</body>
</noframes>
</frameset>

さあ、これでフレーム頁もバッチリだ!と喜んだものの、実際に閲覧してみたらばこの記述には問題があることが判明。頁のいたるところでカーソルの先にtitleで指定した内容がポップアップするんですわ…(困)。アクセス性向上のために必要WAI)と書いてあるんですが、ハッキリ申し上げて閲覧に邪魔なだけです。漫画を読みに来てくれている読者様のことを考えたらつけるべきではないです。試しに赤字部分全部取り払ってみたところ、W3Cで問題なくクリア。なんだ、無くても問題ないんじゃん。

おかげで最終的には100点からどっと減点されて半分くらいになってしまいましたが、点が低くてもそれがサイトにとって必要なことなら胸をはって実行すればいいと思います。

■ところでframeborderの書き場所、実際のところはどうなの?
調べてみた結果、フレーム頁の正しい文法は↑のソースのようになることが分かったわけですが、実際のところはどうなんだろ? ということで、ホームページビルダーでフレーム頁がどう書き出されるか調べてみました。

そしたら、FrontPageと同じく<frameset>内に書き出していました。試しに他のサイトなどをランダムに調べたところ、全部FrontPageと同じ記述で、上のソースに合致するようなサイトは見つけ出せませんでした。ううむ。まさに理想と現実の落差を見せ付けられたような…。

W3Cが何と言おうと、現状がこれではブラウザもFrontPage方式をサポートし続けなければならないでしょう。どうしてW3Cは広く普及している方法を取り入れなかったのでしょう? これでは机上の空論よろしく空回りし続けるだけではないでしょうか。frameborderの位置なんて「文書構造と見栄えの分離」とも関係のない部分だし、「普及したもの→定番化」でよかったと思うのに。

■結論~フレーム頁に関しては標準準拠は先送り
フレーム頁に関してはとりあえず現状維持でW3C方式には移行しないことにしました。多勢に従う、じゃないですが、W3C方式だとFrontPageでの編集が出来なくなるため、自分としてはデメリットの方が大きいので。このように標準に準拠しない方法を選ぶ場合はDOCTYPE宣言は書かないようにします。分かった上で「敢えてDOCTYPE宣言を書かない」選択肢もあるということです。

 

コメント

こんばんわー!
お久しのコメントです(^^ゞ

これね、規格側の問題ではなく、メーカーが独自タグを作ってきた結果ですね。
width と margin の解釈なんかは、IE は特に独自です。このお陰で、スタイルが崩れちゃうのでありまする。

なんと言っても、OS標準のIEは強いので、無下には出来ないのも確かです。

おお~コメントありがとうございます!(^^

そうなんですよね、規格と現状がバラバラなのでサイト作る方は難儀します。規格側の言いたいこともよく分かるし、本当に全部が統一されたら便利になっていいんですけど、現実は…困ったものです(^^;。

>width と margin の解釈
IEで見ると時々サイドバーが落ちてるブログがありますが、それもこの影響でしょうかね。
やっぱりIEで見ている人が一番多いので(多いというよりはほとんどですね)、それに合わせざるを得ないところがありますものね。