* noframes 要素型 (HTML, XHTML 1)

[5] [[HTML]] の [DFN[[CODE(HTMLe)[noframes]] 要素型]]の要素は、
[[フレーム]]の[[代替内容]]を記述します。

[6] 仕様書:
- [[HTML 4]]
-- [CITE[16.4.1 [CODE(HTMLe)[NOFRAMES]] element]]
<IW:HTML4:"present/frames.html#edef-NOFRAMES">
-- [CITE[HTML 4 Changes]]
<IW:HTML4:"appendix/changes.html#h-A.1.1.9">

[7]
:状態:[[W3C]] [[勧告]]
:[[名前空間URI]]:[CODE(URI)@en[[[http://www.w3.org/1999/xhtml]]]]
:[[局所名]]:[CODE(HTMLe)@en[noframes]]
([Q@en[frame]] ([Q@en[[[フレーム]]]]) なし (未対応 / 不使用) より)
:[[開始タグ]]:必須
:[[終了タグ]]:必須
:[[内容モデル]]:
[CODE(SGML)@en[[CODE(HTMLe)@en[[[body]]]] −[CODE(HTMLe)[[[noframes]]]]]]
([[HTML 4]] [[フレーム集合DTD]])、
[CODE(SGML)[%[[flow]];*]]
([[HTML 4]] [[移行用DTD]])
:文脈:[CODE(HTMLe)@en[[[frameset]]]] の末尾に高々1個
([[HTML 4]] [[フレーム集合DTD]])、
[CODE(SGML)@en[%[[block]];]] な文脈
([[HTML 4]] [[移行用DTD]])
:[[属性]]:
,属性名	,属性値	,既定値	,説明	,出典
,[CODE(HTMLa)[[[class]]]]	,	,	,[[級]]	,[HTML4] %[[coreattr]]
,[CODE(HTMLa)[[[dir]]]]	,	,	,[[書字方向]]	,[HTML4] %[[i18n]]
,[CODE(HTMLa)[[[id]]]]	,	,	,一意識別子	,[HTML4] %coreattr
,[CODE(HTMLa)[[[lang]]]]	,	,	,[[自然言語]]	,[HTML4] %i18n
,[CODE(HTMLa)[[[xml]]:lang]]	,	,	,自然言語	,[XHTML1]
,[CODE(HTMLa)[[[onclick]]]]	,	,	,	,[HTML4] %[[events]]
,[CODE(HTMLa)[[[ondblclick]]]]	,	,	,	,[HTML4] %events
,[CODE(HTMLa)[[[onkeydown]]]]	,	,	,	,[HTML4] %events
,[CODE(HTMLa)[[[onkeypress]]]]	,	,	,	,[HTML4] %events
,[CODE(HTMLa)[[[onkeyup]]]]	,	,	,	,[HTML4] %events
,[CODE(HTMLa)[[[onmousedown]]]]	,	,	,	,[HTML4] %events
,[CODE(HTMLa)[[[onmousemove]]]]	,	,	,	,[HTML4] %events
,[CODE(HTMLa)[[[onmouseout]]]]	,	,	,	,[HTML4] %events
,[CODE(HTMLa)[[[onmouseover]]]]	,	,	,	,[HTML4] %events
,[CODE(HTMLa)[[[onmouseup]]]]	,	,	,	,[HTML4] %events
,[CODE(HTMLa)[[[style]]]]	,	,	,スタイル情報	,[HTML4] %coreattr
,[CODE(HTMLa)[[[title]]]]	,	,	,注釈的題	,[HTML4] %coreattr


[[#comment]]


** 内容

[[#comment]]


** 文脈


*** [CODE(HTMLe)@en[frameset]] 内

[19] [[HTML 4]] では、[[フレーム集合DTD]]
で [CODE(HTMLe)@en[[[frameset]]]]
[[要素]]の[[内容モデル]]が 
[PRE(SGML code)[
((FRAMESET|FRAME)+ & NOFRAMES?)
]PRE]

と定義されています。つまり、 [CODE(HTMLe)@en[[[noframes]]]]
は [CODE(HTMLe)@en[[[frameset]]]] の最初か最後に高々1個
[CODE(HTMLe)@en[[[noframes]]]] を入れることができます。

[13]
一方で、 HTML 4 仕様書 16.4.1 の記述によれば、
[CODE(HTMLe)[noframes]] は [CODE(HTMLe)[frameset]] の最後に記述できるようです。

;; 厳密には、最後に置いて構いませんと言っているだけで、
その他の場所には何も言及していませんが。

どちらの記述が正しいのでしょうか? 慣習的には、
[CODE(HTMLe)[noframes]] は [CODE(HTMLe)[frameset]]
の最後 ([CODE(HTMLe)[[[frame]]]] などの後) に書く人が多いようですが。

[[#comment]]


*** [CODE(HTMLe)@en[body]] 内

[1] XHTML m12n では [CODE(HTMLe)[noframes]] 要素を [CODE(HTMLe)[[[body]]]] 
要素中に書くことが出来ません: ''bubble hour - 2001/12 #3'' 
<http://www1.odn.ne.jp/bungaku-shitsu/appendix/diary/d0112-3.html#day24-4>






** UA の利用

[8] [CODE(HTMLe)[noframes]] 要素は、フレームに対応していない UA
やフレーム非表示に設定されている UA だけが表示するべき内容を指定します。
フレームに対応している UA は、フレーム非表示時に
[CODE(HTMLe)[noframes]] の内容だけを表示しなければなりません。
フレーム未対応 UA は、常に [CODE(HTMLe)[noframes]]
の内容だけを表示しなければなりません。 [SRC[HTML 4 16.4.1]]

[9] Frameset DTD の文書では、 [CODE(HTMLe)[noframes]]
は文書の [CODE(HTMLe)[frameset]] の最後で使って構いません。 [SRC[HTML 4 16.4.1]]

[10] 例えば Transitional DTD でフレームの中身の文書でも使って構いません。
著者は [CODE(HTMLe)[noframes]] を使ってフレーム集合外やフレーム未対応 UA 
で見た時に文書の目的を説明できます。 [SRC[HTML 4 16.4.1]]

[11] >>10 [Q[例えば]]って他にどのような場合があるのだろうか。
それはともかく、 >>10 のような目的だと、フレーム対応 UA
であってもフレームなしで表示している時は表示しないといけないような気がしますが、
どうなのでしょう。

[[#comment]]


** 実装

[12] 普通の文書の [CODE(HTMLe)[body]] 内で使うという用法は HTML 4
で導入されたものなので、 HTML 4 以前の UA 
はフレームに対応していても表示してしまうのではないかと思いますが、どうでしょうか。

[2] [[Mozilla]] (1.4) は
[CODE(XPath)[[CODE(HTMLe)[[[frameset]]]]/child::[CODE(HTMLe)[noframes]]]] 
の内容を [CODE(SGML)[[[CDATA]]]] として扱うらしい。
[WEAK[XHTML の場合や [CODE(HTMLe)[body]] 要素以下にある場合は確認してません。]]

[4] [[Emacs/W3]] のフレーム非対応モードだと [CODE(HTMLe)[[[frameset]]]] 
の中身は、 [CODE(HTMLe)[noframes]] も含めて無視してしまうらしいです。
今の版でもそうなのかは知りませんが。。。

[14] [[w3m]] はフレームなしモードだと [CODE(HTMLe)[noframes]]
以外に [CODE(HTMLe)[frame]] 一覧をリンクとしてレンダリングします。

これは >>8 を厳密に解釈すると誤りになってしまいますけど、
[CODE(HTMLe)[noframes]] を書かなかったり[Q[フレーム対応ブラウザで〜]]
しか書かなかったりってのが幅を利かせている状況ですから、
仕様書の規定は不適切で、こう実装するのは当然と言えます。

[[#comment]]


** 不思議解釈

[3] 一説、 [CODE(HTMLe)[[[head]]]] [[タグ]]の中(どこ)に入れないといけない。

[18] '''検索円陣 spam''': [CODE(HTMLe)@en[noframes]]
は近代[[視覚ブラウザ]]の初期設定では[[レンダリング]]されないことから、
[[検索円陣spam]] のためにこの[[要素]]が悪用されることがあります。

[[#comment]]


** 他との関係

[16] 関係する要素型に [CODE(HTMLe)[[[noframe]]]]
や [CODE(HTMLe)[[[noflame]]]] があります。

[[#comment]]


** 例

[17] 別頁の主内容に誘導する例 [SRC[HTML 4 16.4.1]]
[PRE(HTML)[
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
     "http://www.w3.org/TR/html4/frameset.dtd">
  <HTML>
  <HEAD>
  <TITLE>A frameset document with NOFRAMES</TITLE>
  </HEAD>
  <FRAMESET cols="50%, 50%">
     <FRAME src="main.html">
     <FRAME src="table_of_contents.html">
     <NOFRAMES>
     <P>Here is the <A href="main-noframes.html">
              non-frame based version of the document.</A> 
     </NOFRAMES>
  </FRAMESET>
  </HTML>
]PRE]

[[#comment]]


** メモ

[15] [CODE(HTMLe)[noframes]] 要素の内容に
[Q[このページはフレームを使っています。フレーム対応のブラウザでご覧ください]]
とだけ書いておくような人 (や[[著述工具]]) が多くいますが、
不適切であると考えられています。

* 歴史


[FIG(data)[ [117] [[HTML要素概説]]

:[F[要素名]]:[CODE[noframes]]
:日付:[TIME[1995]]
:説明:
[TIME[1995]]頃の
[[Netscape Navigator 2.0]]
は
[CODE[frameset]],
[CODE[frame]]
を実装したが、
それと共に
[CODE[noframes]]
が定義された。
[[Netscape Communications Corporation]]
は
[[HTML 3.0]]
への追加を提案していたという。
:出典:
[REFS[

-
[CITE[Frame Basics]], 
[DATA(.author)[[[Netscape Communications Corporation]]]],
[TIME[2024-08-16T05:44:05.000Z]], 
[TIME(.published)[1997-06-13T22:25:41.661Z]] <http://web.archive.org/web/19970613222244/http://www82.netscape.com/assist/net_sites/frame_syntax.html>



]REFS]

]FIG]

[FIG(data)[ [24] [[HTML要素概説]]

:[F[要素名]]:[CODE[frameset]]
:[F[要素名]]:[CODE[frame]]
:[F[要素名]]:[CODE[noframes]]
:日付:[TIME[1997-04]]
:説明:
[TIME[1997-04]]の [[Lynx]] 2.7.1 は、
[CODE[frameset]],
[CODE[frame]],
[CODE[noframes]]
を実装していた。
[[フレーム]]への[[リンク]]を表示するとともに、
[CODE[noframes]]
を[[レンダリング]]する形だった。
:出典:
[REFS[

-
[CITE[Lynx Users Guide v2.7.1]], 
[TIME(.published)[1997-08-08T17:18:12.000Z]], [TIME[2024-08-13T10:10:58.636Z]] <http://leb.net/blinux/blynx/Lynx_users_guide.html>

]REFS]

]FIG]


[29] [CITE[Frame Basics]], [TIME[2024-08-16T05:44:05.000Z]], [TIME[1997-06-13T22:25:41.661Z]] <http://web.archive.org/web/19970613222244/http://www82.netscape.com/assist/net_sites/frame_syntax.html>

[30] >>29
[CODE[noframes]] は外側 [CODE[frameset]] の先頭。
内容は本文。


- [26] [CITE[Chapter 25 -- HyperText Markup Language (HTML)]], [TIME[2004-10-01T16:08:57.000Z]], [TIME[2024-08-15T13:29:24.514Z]] <http://speed.eik.bme.hu/help/html/Web_Programming_Unleashed/ch25.htm#Frames>
- [25] [CITE[Chapter 27 -- Netscape Extensions]], [TIME[2004-10-01T16:08:57.000Z]], [TIME[2024-08-15T13:28:54.003Z]] <http://speed.eik.bme.hu/help/html/Web_Programming_Unleashed/ch27.htm#YouveBeenFramed>

[27] >>26 [CODE[noframes]] は外側 [CODE[frameset]] の中に入れろと言っている。
>>25 例文では [CODE[noframes]] は外側 [CODE[frameset]] 
の先頭に置かれている。

[28] >>26 例文で [CODE[noframes]] の中身は本文。 
>>25 例文で [CODE[noframes]] の中身は [CODE[html]] [[要素]] (フォールバックの文書全体)。


[34] [CITE[JavaScript Guide]], [TIME[2024-08-16T08:49:27.000Z]], [TIME[2000-12-07T02:02:06.625Z]] <https://web.archive.org/web/20001207020000/http://home.netscape.com/eng/mozilla/3.0/handbook/javascript/index.html>

[35] >>34 はなぜか [CODE[document.write]] で [CODE[frameset]] を書き、
[CODE[noscript]] に[[フォールバック内容]]を置いている。


[36] [CITE@EN-US[Web Workshop - Frequently Asked Questions About HTML Coding for Internet Explorer]], [[Microsoft Corporation]], [TIME[2024-09-26T15:15:17.000Z]], [TIME[2000-12-03T23:28:25.117Z]] <https://web.archive.org/web/20001203232800/http://msdn.microsoft.com/workshop/Author/ie3html/HTMLFAQ1.asp>

(ie3html とあるが、IE4 より後のもの。 IE3 時代からあったのかは不明。)

[37] >>36 [[IE3]] は[[フレーム]]を表示できなかった。 [CODE[noframes]] の中に [CODE[body]]
を入れるというのが [[MS]] の例文。

** HTML4

[31] [[Cougar]] は当初 [[Netscape]] 案をそのまま取り込んでいました。
[SEE[ [[フレーム]] ]]


- [32] [CITE[Implementing HTML Frames]], [TIME[2000-03-13T14:38:35.000Z]], [TIME[2024-08-16T06:42:47.708Z]] <https://www.w3.org/TR/WD-frames-970331>



[FIG(data)[ [33] [[HTML要素概説]]

:[F[要素名]]:[CODE[noframes]]
:日付:[TIME[1997-03-31]]
:(説明):
[TIME[1997-03-31]]の
[CITE[HTML4]]
仕様案は
[CODE[noframes]]
を含むが、従来とは違う用法に改めていた。
従来の[[フレーム]]文書の[[フォールバック内容]]用法は
[CODE[frameset]] の弟に [CODE[body]] を置くこととした。
そして新たに、
通常文書中に[[フレーム]]対応[[Webブラウザー]]で表示しない箇所があるとき
[CODE[noframes]]
を使うこととした。
例えば[[フレーム]]対応[[Webブラウザー]]で別[[フレーム]]に表示したい目次部分を本文フレーム用文書の
[CODE[body]]
中に
[CODE[noframes]]
を使って書けるとしていた。
:出典:
[REFS[

-
[DFN[FRAMES19970331]]:
[CITE@en[Implementing HTML Frames]], 
[DATA(.author)[[[W3C]]]],
[DATA(.status)[Working Draft]],
[TIME(.published)[31-Mar-97][1997-03-31]],
[TIME[2000-03-13T14:38:35.000Z]], [TIME[2024-08-16T06:42:47.708Z]] <https://www.w3.org/TR/WD-frames-970331>

]REFS]

]FIG]


** HTML5

[20]
[CITE@en[Parsing: <noframes> before <frameset>]] ([[Simon Pieters]] 著, [TIME[2008-04-04 23:55:21 +09:00]] 版) <http://lists.w3.org/Archives/Public/public-html/2008Apr/0168.html>
(

[21] [CITE@en[Web Applications 1.0 r2560  Downplay <noframes> error. (credit: hs)]]
( ([TIME[2008-12-24 18:10:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=2559&to=2560>

[FIG(quote)[
[FIGCAPTION[
[22] [CITE[一誠堂書店]]
([TIME[2016-09-24 11:53:49 +09:00]])
<https://www.isseido-books.co.jp/>
]FIGCAPTION]

> 
[PRE(HTML code)[
</head>
<frameset rows="71,*" cols="*" frameborder="NO" border="0" framespacing="0">
<frame src="head.html" name="head" scrolling="NO" noresize >
<frameset cols="153,*" frameborder="NO" border="0" framespacing="0">
<frame src="navi_top.html" name="navi" scrolling="NO" noresize>
<frame src="main2.html" name="main">
</frameset>
</frameset><noframes></noframes>
<noframes>
<body leftmargin="0" topmargin="0" marginwidth="0">
</body>
</html>
]PRE]

]FIG]


[FIG(quote)[
[FIGCAPTION[
[23] ([TIME[2018-03-10 02:12:28 +09:00]])
<https://www.isseido-books.co.jp/wordpress/?news=%E4%B8%80%E8%AA%A0%E5%A0%82%E6%9B%B8%E5%BA%97%E3%81%AEshop%E3%83%9B%E3%83%BC%E3%83%A0%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%8C%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F>
]FIGCAPTION]

> 2017年12月2日
> 一誠堂書店のSHOPホームページがオープンしました

]FIG]

... ってことは、[TIME[2017年][year:2017]]になって新しく[[フレーム]]の
[[Webサイト]]作ったのかwwww