- 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