HTML 3.0 Footnotes (FN)

The handy footnote element solves a common complaint of HTML users, by providing a simple way to handle small notations as hyperlinks without creating separate pages for each footnote or cluttering up page design. While it's impossible to make a Level 2 browser render the footnote as cleanly as a Level 3 browser would, you can still keep things organized.

What the HTML 3.0 Specifications Say

   Permitted Context: %body.content, %flow, %block
   Content Model: %body.content 

   The FN element is designed for footnotes, and when practical,
   rendered as pop-up notes. 

   Example: 

   <DL>
   <DT>Hamlet: <DD>You should not have believed me, for virtue cannot
   so <a href="#fn1">inoculate</a> our old stock but we shall <a
   href="#fn2">relish of it</a>. I loved you not.
   
   <DT>Ophelia: <DD> I was the more deceived.
   
   <DT>Hamlet: <DD>Get thee to a nunnery. Why wouldst thou be a breeder
   of sinners? I am myself <a href="#fn2">indifferent honest</a> ...
   </DL> 

   <fn id=fn1><i>inoculate</i> - graft</fn>
   <fn id=fn2><i>relish of it</i> - smack of it (our old sinful nature)</fn>
   <fn id=fn3><i>indifferent honest</i> - moderately virtuous</fn> 

Compatibility Issues

  1. Level 2 browsers can't jump to an ID like they can jump to an A NAME -- thus while they recognize the "head" of the hyperlink, they can't find the "tail".
  2. Level 2 browsers don't recognize FN as valid block-like element, letting text slide around.
  3. Placing footnotes immediately after the references to them will drop your footnote right in the middle of your text when viewed with a Level 2 browser. (Actually that'll happen with Lynx, too, and it's a Level 3.)

Recommended Solutions

  1. First, move the footnotes to the bottom of your page. They aren't required to be immediately after the reference, and this will keep things neater in Level 2 renderings.
  2. Second, enclose the text of the footnote in a P, keeping the <P></P> pair inside the <FN></FN> pair. This will cause Level 2 browsers to render the footnote as a "normal" paragraph at the bottom of your page, but won't affect rendering on Level 3 browsers. (In fact Strict HTML 3.0 requires a block-like element within a footnote.)
  3. Finally, create a "redundant tail" by placing a HTML 2.0 A NAME (using the same value as the FN ID) at the beginning of the the footnote. Level 3.0 browsers will jump to the ID, while Level 2.0 browsers will jump to the NAME. (Oddly enough, that's legal HTML 3.0 -- the spec doesn't forbid the ID and the NAME sharing the same value. I don't know if the HTML designers would consider that a bug or feature, so don't tell them about it.)

The end result of those changes is a footnote that's treated as a footnote by Level 3 browsers, but appears as just another paragraph at the bottom of the page for Level 2 browsers. The hyperlink functions in either rendering. I think that's an acceptable compromise, don't you? For an example, the footnotes from the IETF example quoted above would be coded as follows:

   <fn id=fn1><P><i><A NAME=fn1>inoculate</A></i> - graft</fn>
   <fn id=fn2><<P>i><A NAME=fn2>relish of it</A></i> - smack of it (our old sinful nature)</fn>
   <fn id=fn3><<P>i><A NAME=fn3>indifferent honest</A></i> - moderately virtuous</fn> 

Future Implementations

Neither the FN element nor the ID attribute appear in the HTML 3.2 Recommendation. ID reappears in the 12July96 (Cougar) HTML DTD, so we're halfway there.

The existence of ID without FN actually raises an interesting question: What happens a hyperlink refers a browser to an element the browser doesn't recognize? The prescribed behavior for "mystery tags" is to ignore them and make no rendering changes. I'm not sure what's supposed to happen (let alone what does happen when browsers find a recognized attribute in an unrecognized element. Anybody who's run into such a situation is welcome to tell me. Please remember to tell me what browser you were using.

HTML 3.0 (Beta) Checked!

http://www.websnob.net/html3/FN.html © 1995.pl-2026 michael@bauser.com