XFrames was an XML format draft for embedding HTML pages into one page which handles the layout without the problems of HTML Frames. This technique has been especially popular for navigation bars. While HTML Frames are still supported for legacy websites, today websites combine the page on the server instead.
Differences from HTML Frames
Traditional HTML frames that were introduced with HTML 4.0 were useful for their ability to combine several distinct Web pages into a single webpage view. However, several problems arose from the implementation and as such, frames have been removed from the W3C XHTML 1.1 standard. XFrames was supposed to address some of the following problems existent in HTML frames:
a Web browser's back button failing to work intuitively
the failure to bookmark or favorite specific documents on the Web page easily as well as the inability to send an individual a reference to a specific document or collection
getting trapped in a frameset
the production of different results at times when a Web page containing frames is reloaded
the "Page Up" and "Page Down" keys being difficult to use due to the pointer focus being on another frame within the page
security vulnerabilities caused by the fact that a user has no way of knowing the original source of each framed document
Since frames are not supported by all agents, and the necessary <noframes> content is not popularly implemented, agents that do not support frames (such as search engines) fail to render pages correctly and at the same time prevent any search engine optimization.
XFrames overcomes the bookmarking problem by encoding the population of the frames into the URI, thus making it possible to bookmark/add a favorite of a page successfully.
XFrames Implementation
Similar to other markup languages, XFrames supported a number of elements and respective attributes.
The following is a simple demonstration for the proposed implementation of a frames webpage:
The <frames> element acts as the containing element of the collection of frames. This collection is what is being referred to as the 'frameset' of a webpage. Similarly to XHTML and HTML markups, the <head> elements contain meta-data primarily used for search optimization and document description. The contained <style> element is used to include any content and layout styling - CSS is being used here. <group> groups a single or several frame elements together and can be styled accordingly. If no group style is specified, the compose attribute should be used to specify how the grouped frame elements are to be composed. Lastly, the <frame> element acts as the placeholder for the content of a webpage specified by URL through the source attribute.