Netscape's HTML extensions (comments solicited)

Tom Magliery (mag@ncsa.uiuc.edu)
Fri, 14 Oct 1994 18:19:23 -0600

Are we interested group discussion of Mosaic Communication's HTML
extensions, which they have documented along with the public beta release
of their Netscape browser (check out http://mcom.com)? (I know at least
some of our developers are interested in hearing our collective opinions.)

MCOM's own html text describing the extensions is below. This document
resides at

http://home.mcom.com/home/services_docs/html-extensions.html

The document uses some of the extensions it describes, so the Netscape
browser itself may be the only one that will illustrate their intent of the
extensions. NCSA Mosaic for the Mac -- whatever our latest internal alpha
release is, anyway -- renders it perfectly readably, but ignores basically
all of their whizzy formatting tricks. I expect that the X version would
do the same.

mag

<title>Netscape Extensions to HTML</title>
<BASEFONT SIZE=3>

<IMG SRC="../images/tiles.gif" WIDTH=472 HEIGHT=137><P>

<B>
<FONT SIZE=+4>E</FONT><FONT SIZE=+2>xtensions to </FONT>
<FONT SIZE=+4>H</FONT><FONT SIZE=+2>TML </FONT>
</B><P>
All the Netscape extensions to <b>HTML</b> take the form of additional
tags added to existing <b>HTML</b> elements.

<dl>
<dt><b><tt>&lt;ISINDEX&gt;</tt></b>
<dd>To the ISINDEX element we have added the PROMPT tag. ISINDEX indicates
that a document is a searchable index. PROMPT has been added so the
document author can specify what message they want to appear before
the text input field of the index. The default is of course that unfortunate
message:
<center>This is a searchable index. Enter search keywords:</center>

<dt><b><tt>&lt;HR&gt;</tt></b>
<dd>The HR element specifies that a horizontal rule of some sort
(The default being a shaded engraved line) be drawn across the page.
To this element we have added 4 new tags to allow the document
author some ability to describe how the horizontal rule should look.
<dl>
<dt><b><tt>&lt;HR SIZE=number&gt;</tt></b>
<dd>The SIZE tag lets the author give an indication of how thick they
wish the horizontal rule to be.
<dt><b><tt>&lt;HR WIDTH=number|percent&gt;</tt></b>
<dd>The default horizontal rule is always as wide as the page. With the
WIDTH tag, the author can specify an exact width in pixels, or a relative
width measured in percent of document width.
<dt><b><tt>&lt;HR ALIGN=left|right|center&gt;</tt></b>
<dd>Now that horizontal rules do not have to be the width of the page
we need to allow the author to specify whether they should be pushed
up against the left margin, the right margin, or centered in the page.
<dt><b><tt>&lt;HR NOSHADE&gt;</tt></b>
<dd>Finally, for those times when you really want a solid bar,
the NOSHADE tag lets you specify that you do not want any fancy
shading of your horizontal rule.
</dl>

<dt><b><tt>&lt;UL&gt;</tt></b>
<dd>Your basic bulleted list has a default progression of bullet
types that changes as you move through indented levels. From
a solid disc to a circle to a square.
We have added a TYPE tag to the UL element so no matter what your indent level
you can specify whether you want a TYPE=disc, TYPE=circle, or TYPE=square
as your bullet.

<dt><b><tt>&lt;OL&gt;</tt></b>
<dd>Your average ordered list counts 1, 2, 3, ... etc.
We have also added the TYPE tag to this element to allow authors to specify
whether the want their list items marked with: capital letters (TYPE=A),
small letters (TYPE=a), large roman numerals (TYPE=I), small roman
numerals (TYPE=i), or the default numbers (TYPE=1).
<p>
For lists that wish to start at values other than 1 we have the new
tag START. START is always specified in the default numbers, and
will be converted based on TYPE before display. Thus START=5 would
display either an 'E', 'e', 'V', 'v', or '5' based on the TYPE tag.

<dt><b><tt>&lt;LI&gt;</tt></b>
<dd>To give even more flexibility to lists, we thought it would be nice
if the author could change the list type, and for ordered lists the
list count index as they progressed. To this end we added the
TYPE tag to the LI element as well. It takes the same values
as either UL or OL depending on the type of list you are in, and
it changes the list type for that item, and all subsequent items.
For ordered lists we have also added the VALUE element so you
can change the count, for that list item and all subsequent.

<dt><b><tt>&lt;IMG&gt;</tt></b>
<dd>The IMG tag is probably the most extended tag.
<dl>
<dt><nobr><b><tt>&lt;IMG
ALIGN=left|right|top|texttop|middle|absmiddle|baseline|bottom|absbottom&gt;<
/tt></b></nobr>
<dd>The additions to your ALIGN options needs a lot of explanation. First,
the values "left" and "right". Images with those alignments are an entirely
new <i>floating</i> image type. A ALIGN=left image will float down
and over to the left margin (into the next available space there), and
subsequent text will wrap around the right hand side of that image.
Likewise for ALIGN=right the image aligns with the right margin, and the text
wraps around the left.
<p>
The rest of the align options are my way of trying to correct for the
horrible errors I made when first implementing the IMG tag, without
destroying the look of existing documents. ALIGN=top does just what it always
did, which is align itself with the top of the tallest
item in the line. ALIGN=texttop does what many people thought top
should do which is align itself with the top of the tallest text in
the line (this is usually but not always the same as ALIGN=top).
ALIGN=middle does just what it always did, it aligns the baseline
of the current line with the middle of the image. ALIGN=absmiddle does
what middle should have done which is align the middle of the current
line with the middle of the image. ALIGN=baseline aligns the bottom of
the image with the baseline of the current line. ALIGN=bottom does
just what it always did (which is identical to ALIGN=baseline but baseline
is a better name). ALIGN=absbottom does what bottom should have done
which is align the bottom of the image with the bottom of the current line.
<dt><b><tt>&lt;IMG WIDTH=value HEIGHT=value&gt;</tt></b>
<dd>The WIDTH and HEIGHT tags were added to IMG mainly to speed up display
of the document. If the author specifies these, the viewer of their
document will not have to wait for the image to be loaded over the
network and its size calculated.
<dt><b><tt>&lt;IMG BORDER=value&gt;</tt></b>
<dd>This lets the document author control the thickness of the border
around an image displayed. Warning: setting BORDER=0 on images that
are also part of anchors may confuse your users as they are used to a
colored border indicating an image is an anchor.

<dt><b><tt>&lt;IMG VSPACE=value HSPACE=value&gt;</tt></b>
<dd>For the <i>floating</i> images it is likely that the author does
not want them pressing up against the text wrapped around the image.
VSPACE controls the vertical space above and below the image, while
HSPACE controls the horizontal space to the left and right of the image.
</dl>

<dt><b><tt>&lt;BR&gt;</tt></b>
<dd>With the addition of <i>floating</i> images, we needed to expand the
BR tag. Normal BR still just inserts a line break. We have added a
CLEAR tag to BR, so CLEAR=left will break the line, and move vertically
down until you have a clear left margin (no <i>floating</i> images).
CLEAR=right does the same for the right margin, and CLEAR=all moves
down until both margins are clear of images.
</dl>

<h2>New Elements</h2>
<dl>
<dt><b><tt>&lt;NOBR&gt;</tt></b>
<dd>The NOBR element stands for <b>NO BR</b>eak. This means all the text
between the start and end of the NOBR elements cannot have line breaks
inserted between them. While NOBR is essential for those odd character
sequences you really don't want broken, please be careful; long text
strings inside of NOBR elements can look rather odd.

<dt><b><tt>&lt;WBR&gt;</tt></b>
<dd>The WBR element stands for <b>W</b>ord <b>BR</b>eak. This is for
the very rare case when you have a NOBR section and you know exactly
where you want it to break. Also, any time you want to give Netscape
help
by telling it where a word is allowed to be broken. The WBR element
does not force a line break (BR does that) it simply lets Netscape know
where a line break is allowed to be inserted if needed.

<dt><b><tt>&lt;FONT SIZE=value&gt;</tt></b>
<dd>Surprise! Yo<font size=+1>u</font> c<font size=+2>a</font><font
size=+4>n</font> <font size=7>c<font size=6>h<font size=5>a<font size=4>n<font
size=3>g<font size=2>e</font></font></font></font></font></font>
the font size. Valid values range
from 1-7. The default font size is 3. The value given to size
can optionally have a '+' or '-' character in front of it to
specify that it is relative the the document basefont. The
default basefont is 3, and can be changed with the BASEFONT element.

<dt><b><tt>&lt;BASEFONT SIZE=value&gt;</tt></b>
<dd>This changes the size of the BASEFONT that all relative font
changes are based on. It defaults to 3, and has a valid range of 1-7.

<dt><b><tt>&lt;CENTER&gt;</tt></b>
<center>
<dd>You aren't dreaming, yes you can center your text. All lines of
text between the begin and end of CENTER are centered between the
current left and right margins.
</center>

</dl>

<h2>Behavioral Changes</h2>
Font attributes are now properly cumulative. Text inside something like<br>
&lt;i&gt;&lt;tt&gt;&lt;font size=6&gt;&lt;b&gt;Text
here&lt;/b&gt;&lt;/font&gt;&lt;/tt&gt;&lt;/i&gt;<br>
will be
<i><tt><font size=6><b>
italic fixed bold text of size 6</b></font></tt></i>.
<p>
Netscape should now properly deal with the awful <b>HTML</b> comment
sequence. This should be:
<center>
&lt;!-- Comment here --&gt;
</center>
These comments can include other elements, and thus be used to
quickly comment out large chunks of markup.
<p>
Line breaking is a little more under control now. Unless
specified with a formatting element, lines can only be broken where
empty space occurs in the original document. This means any spaces,
tabs, or newlines. You should never again have the
sequence &lt;A HREF=url&gt;Anchor here&lt;/A&gt;. broken between
the highlighted anchor and the period.

<h2>New Entities</h2>
In addition to the <a
href="http://info.cern.ch/hypertext/WWW/MarkUp/ISOlat1.html">usual
&amp; escaped entities</a>:<br>
&amp;reg; -> Registered Trademark -> &reg;<br>
&amp;copy; -> Copyright -> &copy;<br>

<HR SIZE=4 >

<a href="mailto:info@mcom.com"><i>info@mcom.com</i></a><br>
Copyright &copy; 1994 Mosaic Communications Corporation.

--
Tom Magliery ** NCSA ** 605 E Springfield ** Champaign IL 61820 ** USA