Framing (World Wide Web)
Encyclopedia
When using web browsers, the terms frames or frameset refer to the display of two or more web pages or media elements displayed side-by-side within the same browser window. The term framing however refers to the fraudulent display of information of one web site's data within another web site's page, fraudulent meaning intentionally using some form of trickery in order to receive unfair or unlawful gain. A frameset is the technical HTML term for a group of named frames to which web pages and media can be directed. The web or media elements that go in a frame may come from the same web site or from multiple web sites. There are multiple ways to accomplish this side-by-side arrangement of web pages. There is significant value in specialized HTML code for creating side-by-side information displays for reasons of improved user readability and comprehension, reduction in the data transmission load on the Internet and expanded options for authors addressing more complex subjects.
Some concerns about this long-standing frameset feature of the HTML 3.0 and HTML 4.0 standards have led to its removal from the HTML 5.0 standard (except for iframe
s). Replacements include XFrames
(still a W3C "working draft" as of 2010), or the use of CSS
(Cascading Style Sheets), server-side includes, and scripting languages such as PHP
.
(Cascading Style Sheets). However, where many have seen this as the only useful rationale for frame pages, there are other more important reasons for side-by-side display of web pages and media and the incorporation of such design within HTML code, not in some separate coding stored in yet another web file.
The common rationale for the creation of a frameset (e.g., using two or more web pages or media elements) is for the purpose of simplifying navigation and the editing of the navigation data. If an item needs to be added to a sidebar navigation menu, the web page author needs to change only one web page file, whereas each individual page on a traditional non-frameset website would have to be edited if the sidebar menu appeared on all of them. In a frameset, each frame displays a different HTML
document. Frames containing headers and sidebar menus do not move when data targeted to content frames is viewed or scrolled up and down. More importantly for users, the data for web page navigation is transmitted only once, which makes for faster web page display for readers and reduces the data transmission load on the Internet, in contrast to CSS which must resend the navigation data for every page that needs it.
A more powerful rationale for the parallel display of frame elements is their use in making comparisons. When items are compared, it is often useful to place them side by side. This might include the side-by-side comparison of two pictures or videos. Another form of comparison provides a way to compare two different ways to understand something, such as putting descriptive information alongside the element or elements being viewed and used, such as an independently scrolling page of text next to video, images, animation, 3D rotating objects, etc. This design is also useful for putting footnote and reference information alongside the paragraph that is citing a reference, a reference which can contain a link providing immediate alongside display of the actual source of the information. Further, many web page elements are interactive, so description of and directions for manipulation of interactive elements in the parallel frame or frames can easily be followed. In addition, web page readers can be concerned that they will lose their place on one web page as they follow related links, but display in a frameset side page keeps the reader's paragraph or original display of information in constant view. In short, the frameset model can be used to improve the readability and therefore comprehension of an author's compositions, especially more complex ideas.
The simple alternative for a side-by-side look at things is to embed the element of information being discussed within a single web page, with the result that if the description is not kept very short, the media element being described scrolls off the page while the description is being read. Web table structures can also be used to put things side by side, but face the same potential problem of scrolling away the item such as an image when the descriptive and comparative information becomes longer. A more complex alternative to side-by-side display requires specialized coding of some kind such CSS or PHP.
2.0 introduced the elements used for frames in March 1996. Other browser vendors such as Apple with Cyberdog
followed later the year. At that time, Netscape proposed frames to the World Wide Web Consortium
(W3C) for inclusion in the HTML 3.0 standard.
Framing was used to display and navigate early e-zines.
element may be included so browsers with frames disabled (or browsers that don't support frames) can display something to the user, as in this example:
as the parent page, or it may link in code from another website server such that these external contents are automatically displayed within the frame (transclusion
or remote loading).
1.0 specification, they were not carried across to XHTML 1.1. The intended eventual replacement is XFrames
, which attempts to solve the problem of addressing a populated frameset through composite URIs
. For those serving web content under the XHTML 1.0 specification, documents may be embedded within one another via either the
. Unfortunately, Internet Explorer 7
does not handle
(Konqueror
), WebKit
(Safari
and Google Chrome
) and Gecko
(Mozilla Firefox
)
Frames become invalid in HTML5, with the exception that iframes remain.
Some concerns about this long-standing frameset feature of the HTML 3.0 and HTML 4.0 standards have led to its removal from the HTML 5.0 standard (except for iframe
IFrame
iFrame can be:* I-frames, in video compression; see video compression picture types* iFrame * The HTML iframe element....
s). Replacements include XFrames
XFrames
XFrames is an XML format for combining and organizing web based documents together on a single webpage through the use of frames. Similarly to HTML Frames, XFrames can be made useful through its power to create a content frame that is scrollable while other frames - such as sidebar menus, the...
(still a W3C "working draft" as of 2010), or the use of CSS
CSS
-Computing:*Cascading Style Sheets, a language used to describe the style of document presentations in web development*Central Structure Store in the PHIGS 3D API*Closed source software, software that is not distributed with source code...
(Cascading Style Sheets), server-side includes, and scripting languages such as PHP
PHP
PHP is a general-purpose server-side scripting language originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document...
.
Value
The commonly understood rationale for frame pages, simplifying web site and web page navigation, has a widely used replacement within CSSCSS
-Computing:*Cascading Style Sheets, a language used to describe the style of document presentations in web development*Central Structure Store in the PHIGS 3D API*Closed source software, software that is not distributed with source code...
(Cascading Style Sheets). However, where many have seen this as the only useful rationale for frame pages, there are other more important reasons for side-by-side display of web pages and media and the incorporation of such design within HTML code, not in some separate coding stored in yet another web file.
The common rationale for the creation of a frameset (e.g., using two or more web pages or media elements) is for the purpose of simplifying navigation and the editing of the navigation data. If an item needs to be added to a sidebar navigation menu, the web page author needs to change only one web page file, whereas each individual page on a traditional non-frameset website would have to be edited if the sidebar menu appeared on all of them. In a frameset, each frame displays a different HTML
HTML
HyperText Markup Language is the predominant markup language for web pages. HTML elements are the basic building-blocks of webpages....
document. Frames containing headers and sidebar menus do not move when data targeted to content frames is viewed or scrolled up and down. More importantly for users, the data for web page navigation is transmitted only once, which makes for faster web page display for readers and reduces the data transmission load on the Internet, in contrast to CSS which must resend the navigation data for every page that needs it.
A more powerful rationale for the parallel display of frame elements is their use in making comparisons. When items are compared, it is often useful to place them side by side. This might include the side-by-side comparison of two pictures or videos. Another form of comparison provides a way to compare two different ways to understand something, such as putting descriptive information alongside the element or elements being viewed and used, such as an independently scrolling page of text next to video, images, animation, 3D rotating objects, etc. This design is also useful for putting footnote and reference information alongside the paragraph that is citing a reference, a reference which can contain a link providing immediate alongside display of the actual source of the information. Further, many web page elements are interactive, so description of and directions for manipulation of interactive elements in the parallel frame or frames can easily be followed. In addition, web page readers can be concerned that they will lose their place on one web page as they follow related links, but display in a frameset side page keeps the reader's paragraph or original display of information in constant view. In short, the frameset model can be used to improve the readability and therefore comprehension of an author's compositions, especially more complex ideas.
The simple alternative for a side-by-side look at things is to embed the element of information being discussed within a single web page, with the result that if the description is not kept very short, the media element being described scrolls off the page while the description is being read. Web table structures can also be used to put things side by side, but face the same potential problem of scrolling away the item such as an image when the descriptive and comparative information becomes longer. A more complex alternative to side-by-side display requires specialized coding of some kind such CSS or PHP.
History
Netscape NavigatorNetscape Navigator
Netscape Navigator was a proprietary web browser that was popular in the 1990s. It was the flagship product of the Netscape Communications Corporation and the dominant web browser in terms of usage share, although by 2002 its usage had almost disappeared...
2.0 introduced the elements used for frames in March 1996. Other browser vendors such as Apple with Cyberdog
Cyberdog
Cyberdog was an internet suite developed by Apple Computer for the Mac OS line of operating systems. It was introduced as a beta in February 1996 and abandoned in March 1997. The last version, Cyberdog 2.0, was released on April 28, 1997...
followed later the year. At that time, Netscape proposed frames to the World Wide Web Consortium
World Wide Web Consortium
The World Wide Web Consortium is the main international standards organization for the World Wide Web .Founded and headed by Tim Berners-Lee, the consortium is made up of member organizations which maintain full-time staff for the purpose of working together in the development of standards for the...
(W3C) for inclusion in the HTML 3.0 standard.
Framing was used to display and navigate early e-zines.
Syntax
The frameset is used instead of the<body>
and </body>
tags. Rows and cols attributes can be used to describe the dimensions of the frames in comma-separated lists of sizes (in pixels or percentages). If the percentages do not add to 100 the browser should adjust the sizes proportionally. Any row or column size may be replaced with an asterisk to indicate the remainder of the remaining screen space. Within the frameset, the framed panels are described with their source documents. The Content sources
The contents of the frames may be hosted on the same serverServer (computing)
In the context of client-server architecture, a server is a computer program running to serve the requests of other programs, the "clients". Thus, the "server" performs some computational task on behalf of "clients"...
as the parent page, or it may link in code from another website server such that these external contents are automatically displayed within the frame (transclusion
Transclusion
In computer science, transclusion is the inclusion of a document or part of a document into another document by reference.For example, an article about a country might include a chart or a paragraph describing that country's agricultural exports from a different article about agriculture...
or remote loading).
Critique
A summary of the criticisms of the practice of framing HTML content includes:- Framing breaks the link between content and a URL, making it difficult to link to or bookmark a particular item of content within the frameset
- The implementation of frames is inconsistent across different browsers
- Browsers which render material linearly don't work well with frames.
- Screen readerScreen readerA screen reader is a software application that attempts to identify and interpret what is being displayed on the screen . This interpretation is then re-presented to the user with text-to-speech, sound icons, or a Braille output device...
programs - text or audio browsers
- emailEmailElectronic mail, commonly known as email or e-mail, is a method of exchanging digital messages from an author to one or more recipients. Modern email operates across the Internet or other computer networks. Some early email systems required that the author and the recipient both be online at the...
www browsers like AgoraAgora (web browser)Agora was a World Wide Web email browser and was a proof of concept to help people to use the full internet. Agora was an email-based web browser designed for non-graphic terminals and to help people without full access to the internet such as in developing countries or without a permanent internet...
- Screen reader
- Framing confuses the boundaries between content on different servers, which raises issues of copyright infringement
- Visitors arriving from search engines may land on a page intended for display in a frame which has no navigation
- Frames change the behavior of the back button
- Users usually don't expect frames to print the way they do
- External links on web pages which use frames may cause other pages to appear in the frameset.
- If the screen resolution or browser window size is too low then each frame will have scroll bars which can look messy and uses up already limited space. Such behaviour typically resulted more from bad site design (fixed layouts instead of fluid layouts), whereby not all frameset features were put into proper use.
- This behaviour could be mitigated by:
- disabling scrolling for smaller frames that typically didn't require a scrollbar;
- using fluid design characteristics in target pages instead of fixed designs, so that the content wouldn't cause horizontal scrollbars in the first place.
- Large frames with no boundaries can be a security risk ; a frame large enough can be used for phishingPhishingPhishing is a way of attempting to acquire information such as usernames, passwords, and credit card details by masquerading as a trustworthy entity in an electronic communication. Communications purporting to be from popular social web sites, auction sites, online payment processors or IT...
.
Replacements
Although frames were included in the XHTMLXHTML
XHTML is a family of XML markup languages that mirror or extend versions of the widely-used Hypertext Markup Language , the language in which web pages are written....
1.0 specification, they were not carried across to XHTML 1.1. The intended eventual replacement is XFrames
XFrames
XFrames is an XML format for combining and organizing web based documents together on a single webpage through the use of frames. Similarly to HTML Frames, XFrames can be made useful through its power to create a content frame that is scrollable while other frames - such as sidebar menus, the...
, which attempts to solve the problem of addressing a populated frameset through composite URIs
Uniform Resource Identifier
In computing, a uniform resource identifier is a string of characters used to identify a name or a resource on the Internet. Such identification enables interaction with representations of the resource over a network using specific protocols...
. For those serving web content under the XHTML 1.0 specification, documents may be embedded within one another via either the
object
or iframe
element tags. Under the 1.1 specification, iframeIFrameiFrame can be:* I-frames, in video compression; see video compression picture types* iFrame * The HTML iframe element....
was removed, leaving only the object
element for transclusion until browsers begin support for XFramesXFrames
XFrames is an XML format for combining and organizing web based documents together on a single webpage through the use of frames. Similarly to HTML Frames, XFrames can be made useful through its power to create a content frame that is scrollable while other frames - such as sidebar menus, the...
. Unfortunately, Internet Explorer 7
Internet Explorer 7
Windows Internet Explorer 7 is a web browser released by Microsoft in October 2006. Internet Explorer 7 is part of a long line of versions of Internet Explorer and was the first major update to the browser in more than 5 years...
does not handle
object
s used to replace the function of an iframeIFrameiFrame can be:* I-frames, in video compression; see video compression picture types* iFrame * The HTML iframe element....
, it doesn't recognize that a link from within the included page has the containing page as its _parent
. Therefore constructing a menu to be included on every page, in imitation of a frameset
, fails as the parent frame cannot be targeted. However most of the layout engines work perfectly well with this construct, some examples are: KHTMLKHTML
KHTML is the HTML layout engine developed by the KDE project. It is the engine used by the Konqueror web browser. A forked version of KHTML called WebKit is used by several web browsers, among them Safari and Google Chrome...
(Konqueror
Konqueror
Not to be confused with the Conqueror web browser.Konqueror is a web browser and file manager that provides file-viewer functionality for file systems such as local files, files on a remote ftp server and files in a disk image. It is a core part of the KDE desktop environment...
), WebKit
WebKit
WebKit is a layout engine designed to allow web browsers to render web pages. WebKit powers Google Chrome and Apple Safari and by October 2011 held over 33% of the browser market share between them. It is also used as the basis for the experimental browser included with the Amazon Kindle ebook...
(Safari
Safari (web browser)
Safari is a web browser developed by Apple Inc. and included with the Mac OS X and iOS operating systems. First released as a public beta on January 7, 2003 on the company's Mac OS X operating system, it became Apple's default browser beginning with Mac OS X v10.3 "Panther". Safari is also the...
and Google Chrome
Google Chrome
Google Chrome is a web browser developed by Google that uses the WebKit layout engine. It was first released as a beta version for Microsoft Windows on September 2, 2008, and the public stable release was on December 11, 2008. The name is derived from the graphical user interface frame, or...
) and Gecko
Gecko (layout engine)
Gecko is a free and open source layout engine used in many applications developed by Mozilla Foundation and the Mozilla Corporation , as well as in many other open source software projects....
(Mozilla Firefox
Mozilla Firefox
Mozilla Firefox is a free and open source web browser descended from the Mozilla Application Suite and managed by Mozilla Corporation. , Firefox is the second most widely used browser, with approximately 25% of worldwide usage share of web browsers...
)
Frames become invalid in HTML5, with the exception that iframes remain.
See also
- Frames
- Inline linkingInline linkingInline linking is the use of a linked object, often an image, from one site by a web page belonging to a second site...
- Deep linkingDeep linkingOn the World Wide Web, deep linking is making a hyperlink that points to a specific page or image on a website, instead of that website's main or home page. Such links are called deep links.-Example:...
- FramekillerFramekillerA framekiller is a piece of JavaScript code that doesn't allow a Web page to be displayed within a frame. A frame is a subdivision of a Web browser window and can act like a smaller window...
- Tableless web design
External links
- HTML Help: What's wrong with frames?
- Dan's Web Tips: Frames
- Script designed to prevent framing of your content