Layout Revision Proposal: CSS and then some

I realize the issue of using Cascading Style Sheets as the layout 
desciption language has already come up, but I still believe it is the 
almost best choice available.

SMIL is for Design Oriented Content Developers
	Above all else, SMIL is intended as a content description language.  As 
such it is going to be used by content developers and providers.  I think 
it is a reasonable assumption that the majority of content developers have 
at least some design background, and their expectations of their tools will 
reflect this background.  That is why I very strongly suggest SMIL's 
initial release should include a layout system that is appealing to it core 
user base.  It is all about audience awareness (something any good designer 
can tell you about).
	Unfortunately, the existing specification completely ignores.  All the 
reasons listed against CSS seem to completely ignore this fact.  They refer 
to the programming of initial implementations and the syntax of specifying 
positioning.  If we are going to develop a good description language for 
multimedia, we need to recognize who is going to use it.
	In addition, the proposed substitution also fails to address the issues 
designer are interested in.  It makes the assumption that the only 
variables of value are "top", "left", "z", "height", and "width" (as 
implied from the statement about creating a new syntax).  There is no 
attention given to fonts (although it clearly specifies how to include 
text), scale (everything is in a single arbitrary unit; early versions of 
HTML proved this doesn't work, especially when trying to make something 
cross-platform), or audio related properties (spatialization, speech 
synthesis voice, or even simple details like volume).  Need you know more?
	CSS fills our needed role nicely in this respect because was design 
specifcally for describing the details designers are interested in.  And as 
far as I know, it is the only language that does this in all of the media 
formats we are interested in (pure video, audio/video, and pure audio; 
theoretically this could be extended to paper (MS Powerpoint style icon 
view) and still be covered by CSS).

CSS is an Exisitng Standard
	I don't think anyone wants to define syntax, as mentioned in the SMIL 
spec.  That's why we should be looking to standards such as CSS.  Not only 
is it designed for/by our target user base, but several new media 
developers are already familar with CSS with more learning.  Tools that 
support it are also coming out fairly quickly.
	I would guess the same could be said for developer's tools, which I would 
think would all you programmers/engineers out there jump at something like 
this.

Heirarchical Nested Coordinate Spaces
	Nested coordinates spaces both simplify document management and 
automation.  It becomes trivial to caption an image or video; the author 
can build a frame of reference around both the image tuner and the caption 
tuner.  This type of encapsulation is very useful when it comes to 
programming and applying transitions; any transition can be applied to the 
container frame rather than to each element of the contained.

Initial Implementation Overhead
	Similar to the way implementations for HTML exist with CSS support (HTML 
3.2 and before), it could be relatively simple to write a SMIL 
implementation that ignores most CSS values. This would be nearly 
equivalent to overriding the values with user preferences, something that 
is allowed in CSS.  While these wouldn't be absolutely correct 
implementations, they would allow developers and authors to begin 
experimenting sooner.  In addition, I believe it would be useful to replace 
"width", "height", and "z" with "right", "bottom", and "z-index" as useful 
shortcuts for their corresponding CSS values (absolute position assumed).
	The additions that would be necessary are treatment of length units, and 
the addition of a frame of reference.  Length units would be relatively 
simple for a computer oriented UA that overrides all font specifications; 
px values can be device coordinates, that everything else can be calculated 
to through a simple precalculated ratio since I doubt any first generation 
UAs are geared towards billboards or PDAs.
	The addition of a frame of reference implies adding a new tag. My personal 
preference is the following tag:

frame            = "<frame" *frame-attribute (">" *frame-content "</frame>" 
| "/>")
frame-content    = tuner | frame
frame-attribute  = id | left | top | right | bottom | z-index

	The problem this causes that I have been able to discount is how an 
initial implementation would deal with non-absolute positioning. 
 Non-absolute positioned objects are potentially dynamic in sizing, as well 
positioned relative to their context in a manner similar to word-wrapping. 
 Obviously, the problem has been solved before since reasonable 
implementations of CSS on HTML already exist, however I do recognize that 
very few people have access to these solutions.  For the the long-term 
viability of SMIL, I believe this initial programming effort is well worth 
it.
	Essentially it comes down to this: don't lower the standard just to make 
your products fit the standard.  If you need to, develop initial versions 
that don't meet the standard.  You will find very fewer people complain 
when have something . . ANYTHING . . . that works in their hands.  This 
will buy you the time to complete a real version.

Andrew n marshall
  student - artist - programmer
    http://www.media-electronica.com/anm-bin/anm
      "Everyone a mentor,  Everyone a pupil"

Received on Sunday, 23 November 1997 23:44:17 UTC