HTML5ではフレームが非推奨になったのに、iFrameは非推奨だったのはなぜですか?


67

HTML5ではフレームが非推奨になったのに、iFrameは非推奨だったのはなぜですか?結局のところ、2つの間にほとんど違いはありません。多くの場合、それらのいずれかを使用すると同じ出力が得られます(間違っている場合はご容赦ください)。



リンクに感謝しますが、iframeが非推奨にならないという2つの小さな違いは何ですか。

1
フレームは最初からひどいアイデアでしたが、iframeにはいくつかの正当なユースケースがありますか?
GordonM

スタックオーバーフローの場合:「HTML5で廃止予定のフレームではなくのiFrame
WBT

回答:


81

投稿にはいくつかの誤解があります。まず、frameおよびframeset要素はHTML5で廃止予定されていない、彼らはしている時代遅れ(つまり、彼らは完全に削除されました)。

第二に、要素frameframeset要素は要素と同じものではなくiframe、同じ出力もしません:

  • このframeset要素は、Webページの別のドキュメントモデルを含める手段としてページのbody要素を置き換えます。これらは使いやすさとアクセシビリティに悪影響を及ぼし、達成しようとしていたものがCSSとユビキタスなサーバー側開発によって完全に置き換えられました。

  • iframe一方、この要素はページの本文を置き換えません。コンテンツのブロックに埋め込まれた新しいブラウジングコンテキストを含める手段として機能します。フレームセットモデルと同じ使いやすさやアクセシビリティの問題は発生せず、埋め込みブラウジングコンテキストを含める必要のあるほぼすべての場所で使用されます(ウィジェットが最も豊富な例です)。1

iframeHTML5でもそれができることで追加機能を取るサンドボックス親文書は、その中に実行されますかを決定することができ、。これにより、信頼されていないコンテンツを埋め込むときに、親ドキュメント(および親ドキュメントへの訪問者)のセキュリティ対策が可能になります。


ノート

注1:object要素は要素と多少重複してiframeいますが、異なるコンテンツモデル(主にプラグインを対象としています)を持ち、独自の注意事項があり、iframe要素が持つサンドボックス属性はありません。


8
フレームセット要素は「使いやすさ」と「アクセシビリティ」に悪いのに、iframe要素はそうではないのはなぜですか?
メリトン-ストライキ

18
@meritonフレームセットは、複数のドキュメントからすべて同じ優先度でページを構築します。これにより、特定の時間にどのドキュメントに焦点を合わせるかわからないスクリーンリーダーに課題が生じます。一方、iframe要素は単一のページに埋め込まれているだけです。画像が埋め込まれているのと同じです。

9
スクリーンリーダーの課題:私が話した盲人は皆、ナビゲーションを別のフレーム(iFrameではなく)で立ち往生させることを好むと言っています。スクリーンリーダーの本当の原因はJavascriptとAJAXであり、現在のスクリーンリーダーではページを完全に使用できません(私の情報は約10か月前です)。私のスクリーンリーダーでの経験はこれをサポートしています。
グレンペターソン

4
2005年に頻繁に引用されたアクセシビリティアサーションの多くが更新のために期限切れになっていないかどうか疑問に思っていました。そのことに反対してくれてありがとう。
エリックReppen

1
@GlenPetersonは、CSSを使用してビューポートでブロック要素を固定することにより、フレーム要素なしで同じ効果を実現できます。そのようなナビゲーションが必要な場合は、それをどのように行う必要があります。より理にかなっています。
netrox 14

8

フレーム(フレームセット)はドキュメントとして機能します。HTMLドキュメントの構造とナビゲーションを壊すため、削除されました。例えば。あるフレームにリンクがあり、別のフレームにコンテンツがあり、ページからのリンクを新しいウィンドウで開くことができない、特定のサブページにリンクできない、など。

一方、iframeはコンテンツ(サンドボックスなど)をサンドボックスするためのものであるため、正しく使用しても何も壊れません。


7

フレームセットは、多くの場合、Webの基本原則(各ドキュメントには単一のURLが含まれる)を破る方法で使用されます。これは、リンク、ブックマーク、検索エンジンなどの問題につながります。

フレームセットの一般的な使用方法は、上部にロゴまたはヘッダーが付いたフレーム、横にメニューが付いたフレーム、およびコンテンツフレームです。ただし、検索エンジンは個々のページにインデックスを付けるため、Googleでページを見つけると、フレームセットなしでコンテンツページに直接リンクするため、ナビゲーションが失われます。リンクとブックマークの問題は、通常、フレームセット自体を失うことなく、フレームセット内の特定のコンテンツページをリンクまたはブックマークすることです。これは簡単な方法ではありません。

そもそもフレームセットが人気を博した理由は、スクロールコンテンツエリアを備えた静的に配置されたヘッダーとメニューを許可したためです。しかし、今日のCSSを使用すれば、はるかに簡単に実現できます。さらに、フレームを使用すると、サーバー側のコーディングを使用せずに、複数のページでロゴやメニューなどの一般的な要素を使用できます。これは、サーバー側のコーディングが面倒でエラーが発生しやすい(CGIスクリプトなど)ときに利点であり、多くのホストはサーバー側のスクリプトをまったく許可しませんでした。現在、コンテンツ管理システム(CMS)とより優れたサーバー側プラットフォームにより、これはサーバー側でより適切に処理されます。

したがって、基本的にフレームセットを使用する利点はなく、多くの問題があります。

IFrame 、フレームセットが使用されたのと同じ方法で使用でき、その場合、同じ問題が発生します。しかし、iframeの合法的な使用も多くあり、これらは同じ問題を引き起こしません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.