- From: Joe D Williams <joedwil@earthlink.net>
- Date: Tue, 15 Dec 2009 08:55:14 -0800
- To: "Leif Halvard Silli" <xn--mlform-iua@xn--mlform-iua.no>
- Cc: "Julian Reschke" <julian.reschke@gmx.de>, "Jonas Sicking" <jonas@sicking.cc>, "Boris Zbarsky" <bzbarsky@mit.edu>, <public-html@w3.org>
> Perhaps you're aware of this then:
>
> http://www.w3.org/QA/2008/09/howto-insert-youtube-video.html
Thanks for pointing that our. Seems like we are on the same path here.
I want to say if there is a budget we can talk about that in more
detail but the key, I think is looking at this from the point of view
of the embedded object, not from the point of view of the host
UA. It is desirable t be able to count on an active scriptable object
that can extend the capabilities of html as a 'live' part of the host
DOM. You gotta think in terms or what the extension needs to run and
have free access to the host DOM and networking. Now that all browsers
support a first cut at <object>, let's take the time to give it a
reliable home in xhtml and html documents.
<object width="425" height="349">
<param name="movie" value="http:...1"></param>
<param name="allowFullScreen" value="true"></param>
<embed src="http:...1"
type="application/x-shockwave-flash"
allowfullscreen="true" width="425" height="349">
</embed>
</object>
Just what we have been discussing. Sorry for this late response.
Here <object> is a useless container for <embed> which contains the
info needed to get the thing running.
Please note somewhere that the the name-value pairs for the strings
'movie' and 'allowfullscreen' are interfaces for the PlugIn, These are
not part of any spec except the spec for the plugin.
HTML interfaces defined by <embed> and <object> are @width and @height
and @type.
<embed> uses @src to identify the resource; <object> uses @data.
<embed> encodes the plugin interfaces in the same way as the
standardized interfaces; <object> uses <param> elements.
<object width="425" height="349">
<param name="movie" value="http:...1"></param>
<param name="allowFullScreen" value="true"></param>
</object>
This should work everywhere by adding @type.
If, and only if the plugin defines an interface for 'movie'.
The idea that a plugin installs itself as a processing resource to the
host UA is important.
@type value is a mime that the host UA recognizes as a resource
registered with the host UA.
<object width="425" height="349" >
<param name="movie" value="http://...1"/>
<param name="allowFullScreen" value="true">
</object>
Again, this should work everywhere when written as:
<object width="425" height="349" type="application/x-shockwave-flash">
A note: <param> is one of those that are sometimes known as void in
html and always as empty in xhtml.
Legally in html this is written as <...> and in xhtml as <.../> and of
course the <.../> xhtml form should be legal in HTML 5 without
exception. There is no reason to use the <...></,,,> form unless the
intent is to include some sort of content between the tags.
Anyway, this step of understanding <object> could stop here for
reflection and luck would have had us landing with this:
<object width="425" height="349" type="application/x-shockwave-flash">
<param name="movie" value="http://...1"/>
<param name="allowFullScreen" value="true">
<p>Interview of Philippe Le Hégaret about Video codec</p>
</object>
where <p> is fallback. Instead we got "It probably means that the
object element has no effect at all and embed is always triggered."
Yes, it had no effect because it carried a lot less info than <embed>.
then we got
<object width="425" height="349"
type="application/x-shockwave-flash"
data="http://...1"">
<p>Interview of Philippe Le Hégaret about Video codec</p>
<param name="movie" value="http://...1" />
</object>
whih might have been considered malformed, because of the location of
the fallback content. Note that both @data and "movie" contain the
resource identifier. Historically, this would appear in situations
where there were multiple plugins available but some plugins did not
have the 'movie' interface defined. Thus, the author would duplicate
the information to compensate.
At this time latest IE8 runs 1 and 5. I question whether 5 should run
because it is malformed.
Latest Chrome runs them all.
Lartest Opera runs them all.
Latest Safari shows them all.
Latest Mozilla Firefox shows 1, 4, 5 (i think).
More later, but basically, the browsers that run all those examples
are tuned for Flash.
Those UAs are playing in the <param>s - an area they have no business
knowing about. So here the UA somehow 'knows' that the param named
'movie' holds a value that is a URL. Then maybe sniffs the response to
figure out it if a mime is registered, then runs the plugin. Another
example of doing whatever is necessary to make something work,
regardless of knowledge of the intention. Or, maybe just assume that
if there is a name 'movie' that it must be Flash. Who knows? Reminds
me of the kid team baseball coach who just tells the players that if
they get past first to just keep running because the defense will
probably throw the ball away. Might win a game or two but isn't a good
representation of learning baseball tactics.
Thanks to All and BEst Regards,
Joe
Received on Tuesday, 15 December 2009 16:56:03 UTC