- From: Matthew Ratzloff <matt@builtfromsource.com>
- Date: Sun, 18 Mar 2007 16:21:05 -0700 (PDT)
- To: public-html@w3.org
- Cc: "WHAT Working Group Mailing List" <whatwg@whatwg.org>
On Sun, March 18, 2007 12:38 pm, Laurens Holst wrote:
> So now we have <img> and <bgsound> and <audio> and <iframe> and <video>
> and <object> and <embed> and <applet>, and I’m sure I forgot one or two
> browser-specific elements :). There are already several duplicates in
> there, and none of them is re-used even if they specifically were
> designed for the purpose like <object> is. It’s a mess, and this idea is
> only adding to it. Wasn’t the mantra reuse and be compatible, and what
> the element is called doesn’t matter as long as it works (otherwise, why
> do we still have <h1> instead of <h> and <hr> instead of <separator>)?
>
> In the end, you would end up with 8 (!) elements that basically all do
> the same, which is embedding an object of different types of media, and
> given that the beast is now loose, I’m sure more will follow. Macromedia
> would surely object it’s being treated as a second-class citizen because
> flash doesn’t fit in any of the primary categories. <flash> seems
> unlikely, but <interactive> is surely next.
I agree. Instead of dealing with a myriad of different tags, why not say
that HTML deals with two things: text and everything else (i.e., embedded
content). Embedded content is handled universally with the <object>
element.
Audio and video should be handled within the browser natively, although it
should be possible to easily override the default player on the user side.
I don't know which formats are open and which aren't, though.
Here's a look at five types of media and use cases for each. The first is
how you might use HTML today. The second is how I would like to be able
to use it. (Some of these don't allow self-closing tags, but I don't want
to look up which ones--I think all tags should be allowed to be
self-closing, in any event. In cases where tags define attributes like
width, height, etc., I think this should be deferred to CSS.)
Images
----------------------------
Simple use case:
<img src="my-picture.jpg />
vs.
<object src="my-picture.jpg" />
Slightly more complex use case:
<img src="my-picture.jpg alt="This is my picture" />
vs.
<object src="my-picture.jpg">This is my picture</object>
Here, Object's fallback mechanism makes more sense than Img's "alt"
attribute, which provides an identical method of handling descriptions but
seems outdated in comparison.
Audio
----------------------------
There are a variety of awkward ways to embed audio into a document.
Simple use case:
???
vs.
<object src="my-sound.mp3" />
"Slightly" more complex use case:
<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"
codebase="http://www.apple.com/qtactivex/qtplugin.cab"
width="200"
height="16">
<param name="src" value="my-audio.mp3" />
<param name="autoplay" value="true" />
<param name="pluginspage"
value="http://www.apple.com/quicktime/download/" />
<param name="controller" value="true" />
<!--[if !IE]> <-->
<object data="my-audio.mp3" type="video/quicktime">
<param name="pluginurl"
value="http://www.apple.com/quicktime/download/" />
<param name="controller" value="true" />
</object>
<!--> <![endif]-->
This is a description of my audio file.
</object>
vs.
<object src="my-audio.mp3">
<param name="autoplay" value="true" />
This is a description of my audio file.
</object>
(Like most of the rest of the world, I hate background music on pages. I
would actually prefer that it was a visible control on the page instead.
Should background music be deemed necessary to retain, it could be done
with a parameter.)
Video
----------------------------
Simple use case:
???
vs.
<object src="my-video.mpg" />
"Slightly" more complex use case:
<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"
codebase="http://www.apple.com/qtactivex/qtplugin.cab"
height="195"
width="340">
<param name="src" value="my-video.mov">
<param name="autoplay" value="true">
<param name="controller" value="true">
<embed height="195" width="340" align="left" src="my-video.mov"
autoplay="true" controller="true">
<noembed>This is a description of my video file.</noembed>
</embed>
</object>
vs.
<object src="my-video.mov">
<param name="codebase"
value="http://www.apple.com/qtactivex/qtplugin.cab" />
<param name="autoplay" value="true" />
This is a description of my video file.
</object>
If there were some way to switch the default for "controller" to true,
that would make more sense.
Iframe
----------------------------
Simple use case:
<iframe src="my-page.html" />
vs.
<object src="my-page.html" />
Slightly more complex use case:
<iframe src="my-page.html"
longdesc="my-page-desc.html"
scrolling="auto" />
vs.
<object src="my-page.html">
<param name="scrolling" value="auto" />
This is my page description. No external description required.
</object>
Applet
----------------------------
Simple use case:
<applet code="my-applet.class" />
vs.
<object code="my-applet.class" />
Slightly more complex use case:
<applet codebase="/applets"
code="my-applet.class"
width="400"
height="320">
<param name="text" value="This is my applet">
This is my applet description, and maybe a note on downloading Java.
</applet>
vs.
<object src="my-applet.class">
<param name="codebase" value="/applets" />
<param name="text" value="This is my applet" />
This is my applet description, and maybe a note on downloading the Sun
JRE.
</object>
In all cases, Object seems more obvious and more suited for the task of
embedding content than the variety of different tags that currently exist.
-Matt
Received on Sunday, 18 March 2007 23:21:27 UTC