[whatwg] Applet embedding patterns

Michael A. Puls II shadow2531 at gmail.com
Sat Apr 7 07:38:19 PDT 2007


On 4/7/07, Henri Sivonen <hsivonen at iki.fi> wrote:
> HTML5 should probably make the Java applet embedding patterns
> documented by Sun conforming or at least make the <applet> case
> conforming as it is the cross-browser syntax:
> http://java.sun.com/j2se/1.5.0/docs/guide/plugin/developer_guide/
> using_tags.html

I agree.

Extra thoughts:

Currently, the only way to embed an applet that's allowed by the spec is:

<object type="application/x-java-applet">
    <param name="code" value="MyJavaClass">
<object>

(That works fine for Opera and FF at least.)

(Note that since codebase, archive, and mayscript are not allowed
attributes, they also have to be specified via params, which works
fine.)

There's also <embed type="application/x-java-applet"
code="MyJavaClass">,  which is currently not allowed because src is
required.

There's also  <object classid="java:MyJavaClass> (which is used as a
non-deprecated example at
<http://www.w3.org/TR/html4/struct/objects.html#h-13.4>). This is
currently not allowed because there's no classid allowed, which has to
be present to be compatible with IE.

And, then, there's of course APPLET, which needs to be defined (no
rush), including how fallback content works when java support isn't
present and the alt attribute is present. (As in, does alt get used
over fallback content or the other way around or somewhere in
between.)

I also think it might be necessary to clarify (or at least hint to)
what mime type should trigger java. application/x-java-vm and
application/x-java-applet etc. are provided by the Sun Java plug-ins,
but not all browsers use those plug-ins. (application/java is used in
W3C examples.)

On a side, if codebase is allowed on the object element, it will have
3 different uses.

1. base URI for resolving (kind of like <base href="">)
2. URI to a .cab file (for activeX stuff)
3. For java, it's specifically a URI to the directory the .class file
is in unless you're using current IE in which case, it's #2 and a
codebase param is used instead.

In the case of #3 (for browsers besides current IE), where both a
codebase attribute  and a codebase param are present, one of them
would have to override the other. It might be necessary to define
which one and how etc.  (Going to something specific like this might
be out of scope for plug-ins etc. in general, but Java handling might
be an exception.)

With all the different OBJECT situations for Java, APPLET will be a huge relief.

-- 
Michael



More information about the whatwg mailing list