framesetはFrameset DTDのみで使用可能です。
子要素に出来るのはframeset frame noframeのみ。
非標準属性として、frameborder framespacing border などがありますが、この属性を使用するとDTD宣言は出来ません。
宣言しても表示はされますが、それはブラウザ側が拡大解釈したと取るべきでしょう。
frameborder="0" framespacing="0" border="0"
こうする事により、フレームの枠を消す事が可能になります。
ただし、利用者がフレームの枠移動などによるサイズ変更が不可能になります。
つまりは決められた枠内にそのページが完全に収まるように設計しなければなりません。
rows="フレームの高さ" cols="フレームの幅"
大きさ指定はピクセル(コンピューターディスプレイの解像度)またはパーセンテージ、「*」があります。
数値指定はピクセルとなり、パーセンテージ指定は50%などと指定します。 「*」は「40,1*,2*,3*」このように指定すると40ピクセルまず取り、残りを「1:2:3」の割合で分割しなさいという意味です。「30%,*」ならば、「*」は70%が割り当てられます。 「30%,1*」としても同じ意味です。
framesetで指定した領域に配置するファイルの情報を記述します。
HTML文書を指定します。 jpg gif等の画像ファイルの指定は基本的には不可です。
ここで指定したフレーム名がa(リンク)のtarget属性の指定と 一致させる事により、フレーム内での表示変更が可能になります。
ちなみにtarget="a"がフレーム名として存在しない場合は フレーム名"a"という新しいウィンドウが開きます。
新しいウィンドウというのアクセシビリティでは使用しない事となっており、 ブラウザの右クリックメニューに用意されているのだから、 新しくウィンドウを開く判断をするのは利用者であるという理由です。 音声ブラウザでは支障をきたす場合もあるようですし。
上下左右のマージン値をピクセルで設定します。
フレームのサイズ変更を不可にします。 XHTML1.0ではnoresize="noresize"と書きます。
0 にしても隣接するフレームが枠表示の設定になっていれば表示されますし、 実際的にはグレーの細線が表示されます。
だから、framesetでの非標準属性が出来たのでしょうね。
フレームに関する詳しい説明を記述した文書のURIを指定します。 title属性だけでは説明しきれない場合、使用します。
title属性、longdes属性、どちらもそのフレームの内容が変わっていく事に留意すべきです。
テキストブラウザ、音声ブラウザではフレームのname属性、title属性、あるいはフレーム内で表示されるページのtitle要素、これらを参照し、利用者にフレーム情報を提供します。理解でき、フレーム内の情報の変化にも対応した設定が 必要となってくるわけです。
src="URI" で画像指定は不可としている理由がこれでお判り頂けるかと思います。
フレームをサポートしていないブラウザの為にnoframeは 必ず書くようにしましょう。
この要素はFrameset DTDの他に、Transitional DTDにも使用可能です。
つまり、サイト内でフレームを使う箇所があり、そこへのリンクがある場合、
あらかじめTransitionalのページにて告知可能になるからです。
<frameset>
<frame></frame>
<noframe>
<body>
フレームの内容記述(リンクや代替表示)
</body>
</noframe>
</frameset>