W3C's HTML Working Group has released an initial public working draft specification for 'XFrames'. XFrames is an XML application which "addresses the usability, search, and security problems associated with HTML frames." The specification "defines a separate XML application (not a part of XHTML per se) that allows functionality similar to HTML Frames, but with fewer usability problems, principally by making the content of the frameset visible in its URI. The frames element forms the container for the composed document. The individual sub-documents ('frames') may be composed together in a rectangular space by placing them next to, or above, each other in rows and columns, or they may be displayed as separate movable window-like panes, or as tabbed panes, or in any other suitable manner. The collection of frames in an XFrames document is referred to as a frameset. All styling, positioning, and sizing of frames is done using a style sheet in CSS or some other suitable styling language. The specification does not require conformant XFrames user agents to accept or refuse any particular type of document for assignment to a frame." A DTD implementation projected for completion as a normative Appendix A is not supplied in this WD, but unofficial and experimental schemas have been drafted by Masayasu Ishikawa (XML DTD, RELAX NG schema, W3C XML schema).
Bibliographic information: XFrames. W3C Working Draft 6-August-2002. Version URL: http://www.w3.org/TR/2002/WD-xframes-20020806. Latest version URL: http://www.w3.org/TR/xframes. Previous version: [None; initial public working draft]. Edited by Steven Pemberton (CWI/W3C).
The XFrames Document and the Frameset (excerpts):
"An XFrames document is a specification for composing several documents, potentially of different types, together in a view. The frames element forms the container for the composed document. The individual sub-documents ('frames') may be composed together in a rectangular space by placing them next to, or above, each other in rows and columns, or they may be displayed as separate movable window-like panes, or as tabbed panes, or in any other suitable manner. The collection of frames in an XFrames document is referred to as a frameset..."
"An XFrames document is referenced by a URI of the form http://example.org/home.frm#frames(id1=uri1,id2=uri2,...). Each id identifies a frame element within the document with an id attribute with that value. Each associated URI is then assigned to that frame. If there is no frame with that id, the URI is ignored. If a frame within the document is not populated (because it has no id attribute, or because there is no parameter that uses its id), and it has a source attribute, the URI in that attribute is used instead. If an unpopulated frame has no source attribute, the frame is left blank."
Usability problems to be solved by XFrame (vis-à-vis HTML frames):
- The [back] button works unintuitively in many cases.
- You cannot bookmark a collection of documents in a frameset.
- If you do a [reload], the result may be different to what you had.
- [page up] and [page down] are often hard to do.
- You can get trapped in a frameset.
- Searching finds HTML pages, not Framed pages, so search results usually give you pages without the navigation context that they were intended to be in.
- Since you can't content negotiatiate, 'noframes' markup is necessary for user agents that don't support frames. However, almost no one produces noframes content, and so it ruins Web searches, since search engines are examples of user agents that do not support frames.
- There are security problems caused by the fact that it is not visible to the user when different frames come from different sources.
- XFrames. W3C Working Draft 6-August-2002.
- Test schemas contributed by Masayasu Ishikawa ("purely personal experiments, not to be considered as an official work of the W3C HTML Working Group"):
- Comments: send email to the archived list at email@example.com
- Discussion list archives for 'www-html'
- XHTML 2.0. W3C Working Draft 5-August-2002
- W3C HTML Activity