This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 9428 - Permit <object> to be used without the data or type attribute present
Summary: Permit <object> to be used without the data or type attribute present
Status: RESOLVED WONTFIX
Alias: None
Product: HTML WG
Classification: Unclassified
Component: pre-LC1 HTML5 spec (editor: Ian Hickson) (show other bugs)
Version: unspecified
Hardware: All All
: P2 normal
Target Milestone: LC
Assignee: Ian 'Hixie' Hickson
QA Contact: HTML WG Bugzilla archive list
URL: http://dev.w3.org/html5/spec/text-lev...
Whiteboard:
Keywords: a11y, TrackerIssue
Depends on: 10589
Blocks:
  Show dependency treegraph
 
Reported: 2010-04-06 01:34 UTC by Leif Halvard Silli
Modified: 2011-01-22 12:20 UTC (History)
8 users (show)

See Also:


Attachments

Description Leif Halvard Silli 2010-04-06 01:34:57 UTC
The spec says about <object>:

]]
At least one of either the data attribute or the type attribute must be present
[[

However, HTML4 doesn't make it a requirement that OBJECT has either @data or @type.

The usecases for omitting them can be

* It can be used to solve some incompatibility problems in some legacy browsers (versions of IE)
* <object> can be used as a container of a "mark-up object".
* there are some plug-ins that can be used without either @data or @type (they use <param> instead.
* I believe there are many pages without either.

I can "become valid" by doing <object data>content</object>. However it seems meaningless to add the string " data" just to stay valid.
Comment 1 Ian 'Hixie' Hickson 2010-04-13 01:10:14 UTC
EDITOR'S RESPONSE: This is an Editor's Response to your comment. If you are satisfied with this response, please change the state of this bug to CLOSED. If you have additional information and would like the editor to reconsider, please reopen this bug. If you would like to escalate the issue to the full HTML Working Group, please add the TrackerRequest keyword to this bug, and suggest title and text for the tracker issue; or you may create a tracker issue yourself, if you are able to do so. For more details, see this document:
   http://dev.w3.org/html5/decision-policy/decision-policy.html

Status: Rejected
Change Description: no spec change
Rationale: 

> * It can be used to solve some incompatibility problems in some legacy browsers
> (versions of IE)

There are surely better solutions to these problems.


> * <object> can be used as a container of a "mark-up object".

What is a "mark-up object"?


> * there are some plug-ins that can be used without either @data or @type (they
> use <param> instead.

Which ones? How does the UA know which plugin to start?


> * I believe there are many pages without either.

Do you have any data on this? I haven't seen such data.


> I can "become valid" by doing <object data>content</object>. However it seems
> meaningless to add the string " data" just to stay valid.

That would be invalid actually.
Comment 2 Leif Halvard Silli 2010-04-13 20:59:09 UTC
Reply to comment #1 From Ian 'Hixie' Hickson 2010-04-13 01:10:14 -------

Status: Rejected
Change Description: no spec change
Rationale: 

>> * It can be used to solve some incompatibility problems in some legacy browsers
>> (versions of IE)
>
>There are surely better solutions to these problems.

No, there aren't better solutions.

(Since you don't ask, then I don't feel obligued to answer any more than this.)

>> * <object> can be used as a container of a "mark-up object".
>
>What is a "mark-up object"?

Why did you reject if you did not know?

By mark-up object I mean an object element which acts as a container element for other elements (excluding <param> elements which belongs to the object itself).

>> * there are some plug-ins that can be used without either @data or @type (they
>> use <param> instead.
>
>Which ones? How does the UA know which plugin to start?

Webkit seems to be able to use <param> instead of @type and/or @data. And Opera has a very agressive attitude - it works with almost anything, last I checked.

>> * I believe there are many pages without either.
>
>Do you have any data on this? I haven't seen such data.

For the moment I cannot provide any documentation.

>> I can "become valid" by doing <object data>content</object>. However it seems
>> meaningless to add the string " data" just to stay valid.
>
> That would be invalid actually.

How should I interpret this? There is a @data attribute present,  so I can' see how it can be invalid. Please explain. Validator.nu has the same interpretation as I have in this case.
Comment 3 Leif Halvard Silli 2010-04-13 21:12:02 UTC
>>> * It can be used to solve some incompatibility problems in some legacy browsers
>>> (versions of IE)
>>
>>There are surely better solutions to these problems.
>
>No, there aren't better solutions

OK, I'll explain. Even if I expect that you will be dismissive, as usual.

The incompatibilities with IE that I have in mind are related to the OBJECT itself. E.g. if you do this:

<object data=* type=*>
      <object  data=* type=* >
      </object>
</object>

then some versions of IE will treat the above as

<object data=*   type=*  ></object>
<object  data=*  type=*  ></object>

Knowledge about this behaviour can e.g. be used to work around the bugs that IE has in how it treats image maps whenever <object> is used as the image container. (IE doesn't accept when the <map> element is directly inside the <object>, but through use of its malbehaviour, one can plase it there anyhow.)
Comment 4 Ian 'Hixie' Hickson 2010-04-14 00:11:35 UTC
Let's see if I can summarise your long responses into something coherent and short. You believe the use cases for allowing a semantic-free <object> are:

* Some versions of IE misparse nested <object>s that have these attributes.
* It would allow <object> to be used instead of <span>.
* It would allow authors to use a WebKit bug.


Examining these in turn:

* Some versions of IE misparse nested <object>s that have these attributes.

Can you provide some actual examples of real pages that need this <object> hack to work right in IE and where the bugs can't be worked around any other way?

* It would allow <object> to be used instead of <span>.

Just use <span>.

* It would allow authors to use a WebKit bug.

Please file a bug with WebKit.


EDITOR'S RESPONSE: This is an Editor's Response to your comment. If you are satisfied with this response, please change the state of this bug to CLOSED. If you have additional information and would like the editor to reconsider, please reopen this bug. If you would like to escalate the issue to the full HTML Working Group, please add the TrackerRequest keyword to this bug, and suggest title and text for the tracker issue; or you may create a tracker issue yourself, if you are able to do so. For more details, see this document:
   http://dev.w3.org/html5/decision-policy/decision-policy.html

Status: Did Not Understand Request
Change Description: no spec change
Rationale: I'm marking this "Did Not Understand Request" because of the request for further information regarding the IE bug, which is the only remaining use case that might be a reason to allow this.
Comment 5 Leif Halvard Silli 2010-04-14 03:59:14 UTC
(In reply to comment #4)
> Let's see if I can summarise your long responses into something coherent and  short. 

Don't compare me with those you are in contact with on  IRC day in and day out.  If i were in their shoes,  I would of coruse have expressed myself more understated, since almost everything would have been said in advance.

    [...]
> * Some versions of IE misparse nested <object>s that have these attributes.
> 
> Can you provide some actual examples of real pages that need this <object> hack
> to work right in IE and where the bugs can't be worked around any other way?

What are "real" pages? What is you definition of "need"? Should I have used my time on developing and sprading the techniques I have in mind instead of paying attention ot this working group and indeed to HTML5? 

I have made some use of this hack myself. But I don't want to link to my private business in this bug.

When you speak about "any other way", do you then mean the proprietary "conditional comments"? I believe that anything that is possible to do via conditional comments should also be possible in HTML direclty, if it doesn't create problems.

Clearly, any hack relating to this IE bug, is also possible to solve via conditional comments. But conditional commenst aren't always necessary to use.

There are hundred of millions of  solutions which serve one OBJECT to IE and andother to other IEs. Why not support a valid way to do the same?
 
> * It would allow <object> to be used instead of <span>.
> 
> Just use <span>.

Different content model. OBJECT can contain the things that I want: TABLE, P, DIV, whatever. SPAN can not. Thus SPAN is not an option. It is quite far fetches to bring in SPAN here - no relevace what so ever. SPAN is however related to the IE bug issues. 

EXAMPLE. If you want to do this:

<p>Embedding a small text in this paragrap:
       <object><p>Line 1.<p>Line 2.</object>
</p>

then IE doesn't sees it as if a P i a child of a P, and simply rejects to render the content of the OBJECT. Whereas if you do this, then it  works, in IE version 6:

<p>Embedding a small text in this paragrap:
       <object><object></object><p>Line 1.<p>Line 2.</object>
</p>

Later versions of IE treats OBJECT differently and thus requires the conditional comments. 

<p>Foo 
                <object><![if ie]></object><![end if]>
                                 <p>Bar.</p><p>Bas.</p>
                 </object>
</p>

But for the icing of the cake, we need to use a SPAN around the OBJECT (or perhaps a DIV inside the object):

<p>Foo <span>
                <object><![if ie]></object><![end if]>
                                 <p>Bar.</p><p>Bas.</p>
                 </object>
                 </span>
</p>

So, using <span> instead? No. Not unless you change the content model of <span>. I see no signs of that.

> * It would allow authors to use a WebKit bug.

I would have to think before I could claim that Webkit is related to this bug. I only mentioned it because you asked about user agent examples.

> Status: Did Not Understand Request
> Change Description: no spec change
> Rationale: I'm marking this "Did Not Understand Request" because of the request
> for further information regarding the IE bug, which is the only remaining use
> case that might be a reason to allow this.

1. I find it interesting that you are positive towards a IE targeting bug, while recently were rejecting a Mozilla focused bug.
2. The option to be able to hack Internet Explorer (at least version 6)  without using conditional comments is a bonus.
3. The "only remaing" - or the real issue - in this bug report is actually what you referred to as "use span instead". E.g. this allows us to embed a <figure> element inline - by placing it inside a <object>.
Comment 6 Leif Halvard Silli 2010-09-12 13:20:19 UTC
If <figure> is permitted used inside <p> elements - bug 10589, then I consider that this bug can be solved as a WONTFIX.

Allowing <figure> inside <p> would mean that  it would be necessary to wrap the <figure> inside an <object> (as permitted in HTML4) in order to create an inline figure.
Comment 7 Michael A. Puls II 2010-09-12 16:21:13 UTC
(In reply to comment #2)
> Reply to comment #1 From Ian 'Hixie' Hickson 2010-04-13 01:10:14 -------
> >> * there are some plug-ins that can be used without either @data or @type (they
> >> use <param> instead.
> >
> >Which ones? How does the UA know which plugin to start?
> 
> Webkit seems to be able to use <param> instead of @type and/or @data. And Opera
> has a very agressive attitude - it works with almost anything, last I checked.

With <object>, Opera invents @data in many situations for compatibility (especially for pages where Opera ends up getting IE-only code/markup because of bad browser detection).

For example:

<object>
    <param name="filename" value="file.wmv">
</object>

becomes:

<object data="file.wmv">
    <param name="filename" value="file.wmv">
</object>

Opera does all kinds of magic with <object>. However, that doesn't seem to be necessary for all browsers, just Opera right now with its market share and it be lucky enough to be hit by bad browser detection.
Comment 8 Ian 'Hixie' Hickson 2010-09-28 07:19:00 UTC
EDITOR'S RESPONSE: This is an Editor's Response to your comment. If you are satisfied with this response, please change the state of this bug to CLOSED. If you have additional information and would like the editor to reconsider, please reopen this bug. If you would like to escalate the issue to the full HTML Working Group, please add the TrackerRequest keyword to this bug, and suggest title and text for the tracker issue; or you may create a tracker issue yourself, if you are able to do so. For more details, see this document:
   http://dev.w3.org/html5/decision-policy/decision-policy.html

Status: Rejected
Change Description: no spec change
Rationale: I am not convinced there are use cases here. I maintain that the stated requirement is a sensible one.
Comment 9 Martin Kliehm 2010-12-14 17:59:10 UTC
The bug-triage sub-team doesn't think this bug is task force priority. If Leif disagrees with the editor's decision he can either reopen or escalate the bug.
Comment 10 Leif Halvard Silli 2011-01-22 02:40:32 UTC
Adding TrackerRequest.  This TrackerRequest is part of the trackerrequest that I issued for  Bug 9657.
Comment 11 Sam Ruby 2011-01-22 12:20:49 UTC
http://www.w3.org/html/wg/tracker/issues/158