A Proposal for WYSISWYG HTML

Paul Haeberli
Silicon Graphics Computer Systems
20 May 1996

Introduction

I love the fact that HTML describes content, not presentation, but there is also value in allowing designers to apply their own organization to image and text information.

I'd like to consider expanding HTML in two completely contrasting directions.

CONTENT

Adding more tags for describing content. For instance, I'd love to see a way of saying that some text is a caption for an illustration in HTML. Or have tags that indicate that a particular image is "important" and could be displayed in a way that is prominent on the screen or page.

PRESENTATION

Adding tags that let designers create content that looks good. I've read the Style Sheet working draft in detail, but it does not address this problem. Instead, I'd like to suggest a tag for absolute positioning. I think this will give designers the control they need.

The Problem

Two major problems are the lack of absolute positioning and the fact that pages get displayed in different ways on different platforms. Here are a few thoughts on an approach to a solution that is compatible with traditional HTML.

A Proposed Solution

1. Add two fields to the "body" tag for width and height. This defines the size of the area that drawing happens in. This drawing area appears centered in the visible area of the browser window.

<body bgcolor="#ffffff" width=640 height=480>

2. Create a new tag called <pos>, as in:

<p>
<pos left=100,300>I think designing web content 
<pos left=100,280>using absolute pixel positioning
<pos left=100,260>along with downloaded fonts is the 
<pos left=100,240>way to go.  I'm work on a browser 
<pos left=100,220>that I hope will incorporate this 
<pos left=100,200>by adding two things:
<pos center=50,150><img src="rabbit.gif">

Tags that reposition text like <br> and <p> are ignored in a browser that supports the <pos> tag. Tags that change the typeface like <i> and <b> are used to select different typefaces.

All the images are drawn under the text, so you could easily have text go on top of pictures. The drawing order of images is the order that they appear in the HTML file. The drawing order of test is the order that it appears in the HTML file.

browsers that don't know about "pos" tags display the content as well as they currently do.

3. In order to insure that the pages look identical on different platforms, a set of 8 default bitmap fonts should be provided in the browser, and these should appear the same on all platforms. In addition, bitmap fonts could be sent to the browser to display arbitrary typefaces. This is outlined in this proposal for sending bitmap fonts to browsers for display.

An added advantage of sending down bitmap images for fonts is that we can explore fonts where each character is a colored image, not just a shape that is drawn with a constant color. The outline font proposals from Adobe/Netscape/Apple are trying to take existing technology and adapt it into a poor solution, instead of doing something that is really appropriate for this new medium.

4. Another thing that could be nice is to have the browser send more information out in its UserAgent field. This gets sent to the HTTP server ith each request. Currently Netscape sends:

Mozilla/2.0S (X11; I; IRIX 5.3 IP22)

I plan to include the max size of the screen and a nominal bandwidth that is available. That way a smart server could generate content for a particular screen size, bandwidth and depth.

Space/0.2 (1280:1024; 10kB; 24g)

5. An include syntax is an extension to consider for the future. This would allow one HTML file to include another.

<include href="nav.html" width=100 height=600>
This, like the <img> tag, specifies a width and height in pixels. The included .html file points to WYSIWYG content that is 100 by 600 pixels in this case. This construct provides the basic capability of frames.

If you have ideas relating to these topics, please send them my way.

Paul Haeberli

BACK