Proposal -- Foldable Anchor Inclusion

Mark Torrance (torrance@ai.mit.edu)
Tue, 26 Jul 94 13:40:42 EDT


Proposal -- Foldable Anchor Inclusion

Proposal -- Foldable Anchor Inclusion

This is a proposal to add a new folding capability to HTML 3.0 by adding a new value for the EFFECT attribute of an 'A' element. (for background on EFFECT please consult the relevant part of the HTML+ spec). The proposed new value is Indent or Foldable or Fold (in decending order of my preference). It means that the retrieved document should be rendered in place within the current document, indented one level (the width of this indentation would be a browser preference). Foldable tags within the new subdocument should be indented even further when they are unfolded, producing a natural outline structure. This capability represents a sort of user-controlled client-side include mechanism which is similar to the way images are now included by user-click in some web browsers for Macs and PCs with slow net connections. Note that this proposal is backward-compatible with HTML 2.0, since browsers that don't understand the EFFECT tag would just display the foldable item as a normal link.

Refolding

Browsers which support this should be expected to provide a way to "refold" a subdocument which had been "unfolded", thereby returning to a shorter displayed document. Note that the browser history is not enough; I may retrieve a document with A and B folded, then unfold A, unfold B, then finally refold A; this is a new state I haven't seen before in my window history.

Why Put This Property on the Anchor?

Many documents may stand on their own right, and may also be appropriate for indented inclusion in other documents. It's not really a property of the included document whether it's appropriate for inclusion, but a choice that should be made by the author of the including document when authoring the anchor.

Why Indent?

The point of the indentation is to indicate the extent of the subdocument. This could be indicated instead by changebars, by different background colors in the client, or by a closing hrule. Perhaps NoIndent should be an alternative EFFECT?

Title

The included documents will usually have a title, which the user probably wants to see. I suggest that browsers show the title only if it is at all different from the link text that led to the included document. This is because that link text will still be on the display at the top of the title. I would suggest that other information from the included document's head (if any), such as links, be displayed in the subdocument's extent just as they are normally shown at the top (or bottom) of the primary document.

Client / User-Interface Implementation

One model for how to display this is the Macintosh System 7 triangles placed to the left of foldable items. These look like '>' when something is folded, and 'V' when it is unfolded. This model is nice because it would allow the link text to be separately active as a hotlink to visit the document on its own page (or in a new window per browser preference or user mouse-button-choice). An alternative is to have the link active in a special way, so that it toggles whether its subdocument is folded. This has the disadvantage that it changes the semantics of a link that might look similar to other links, so the appearance should probably be different (different color or bold underline, for example). I prefer the former (triangle) implementation, or some other symbol if Apple has the triangle copyrighted or the mechanism patented.

Annotations

This mechanism would provide good support for displaying annotations in the context of the original document, where the annotations were also documents in their own right (and thus could be themselves annotated, etc.) Note that the annotations *could* be referenced in the original document, or they could be applied on the server side by a program that uses a comment map to include them after appropriate paragraphs, or they could be retrieved by a client from a separate annotation server and displayed conditionally based on user preferences and/or group permissions. In any case, the folding in-context display capability will be useful whether annotations appear in the middle of a document or at its end.

Other Uses

This folding mechanism would also be useful for code browsers and taxonomy browsers, where the subdocument is computed by running a script or program or doing a database query. Finally, this may be a good way to present long structured documents as folded tables of contents. In fact, certain clients may choose to offer a "folded" view of a standard HTML document that uses existing HTML document tag structure to fold sections under their headings, paragraphs under their first lines, HTML+ figures under their captions, etc. This "folded view" capability is independent of the proposed change to the HTML 3.0 spec, but would be value-added that could leverage off the browser programming that implements compliance with the proposed attribute addition.

Comments

I invite comments on this proposal to be posted to the www-html mailing list or mailed to me at torrance@ai.mit.edu.
Mark Torrance