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 10355 - Kill most or all of the special IDL attributes for marquee
Summary: Kill most or all of the special IDL attributes for marquee
Status: CLOSED WONTFIX
Alias: None
Product: HTML WG
Classification: Unclassified
Component: pre-LC1 HTML5 spec (editor: Ian Hickson) (show other bugs)
Version: unspecified
Hardware: Other other
: P3 normal
Target Milestone: ---
Assignee: Ian 'Hixie' Hickson
QA Contact: HTML WG Bugzilla archive list
URL: http://www.whatwg.org/specs/web-apps/...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-08-12 21:41 UTC by contributor
Modified: 2010-12-30 22:58 UTC (History)
7 users (show)

See Also:


Attachments

Description contributor 2010-08-12 21:41:36 UTC
Section: http://www.whatwg.org/specs/web-apps/current-work/#the-marquee-element

Comment:
As far as I can tell, no browser but IE actually implements half of these
weird marquee properties.  Firefox 4.0b3 and Chrome dev don't implement
behavior, bgColor, direction, height, scrollAmount, scrollDelay, trueSpeed, or
width.	Opera 10.60 doesn't implement bgColor or trueSpeed, and implements
scrollAmount, scrollDelay, height, and width different from the spec says. 
Only IE implements all of them at all, and most seem to differ from what the
spec says.  I doubt Gecko or WebKit will want to implement these, so how about
removing them?

Posted from: 68.175.61.233
Comment 1 Anne 2010-09-24 09:14:18 UTC
The content attributes work across browsers?
Comment 2 Aryeh Gregor 2010-09-26 11:57:21 UTC
Sample:

data:text/html,<!doctype html>
<marquee direction=up>Hello</marquee>
<script>
var el = document.createElement("marquee");
el.setAttribute("direction", "up");
alert(el.direction);
</script>

In Chrome dev, recentish Firefox mozilla-central, and Opera 10.60, the direction=up effect works, but Chrome and Firefox alert "undefined" (Opera alerts "up").  So it seems like at least some of the content attributes work without corresponding IDL attributes being defined.

More comprehensive survey of IDL attribute support:

data:text/html,<!doctype html>
<script>
var span = document.createElement("span");
var attrs = [];
for (var attr in document.createElement("marquee")) {
	if ( !(attr in span) ) {
		attrs.push(attr);
	}
}
alert(attrs.join(" "));
</script>

* IE8: bgColor vspace direction height behavior width loop scrollAmount trueSpeed scrollDelay onfinish onbounce onstart hspace
* Recent Firefox mozilla-central build: align
* Chrome dev: start stop
* Safari 5: start stop
* Opera 10.60: behavior direction height hspace loop scrollAmount scrollDelay vspace width start stop

The intersection of any *two* of Trident, Gecko, and WebKit is apparently zero IDL attributes, so I expect they could all safely be removed from a web compat perspective.  This makes <marquee> weirder (content attributes that work with no corresponding IDL attributes), but it's surely easier to reach compat by removing useless stuff than by trying to make <marquee> saner, even if it makes an obsolete part of the platform that much less logical.
Comment 3 Ms2ger 2010-09-27 18:07:43 UTC
(In reply to comment #2)
> * Recent Firefox mozilla-central build: align

For reference, this is because document.createElement("marquee") is an HTMLDivElement.
Comment 4 Ian 'Hixie' Hickson 2010-09-30 04:04:51 UTC
Gecko actually supports: _behavior _direction _doMove _fireEvent _loop _onbounce _onfinish _onstart _scrollAmount _scrollDelay _setEventListener _set_behavior _set_direction _set_loop _set_scrollAmount _set_scrollDelay align behavior direction dirsign height init innerDiv loop newPosition onbounce onfinish onstart originalHeight outerDiv runId scrollAmount scrollDelay start startAt startNewDirection stop stopAt trueSpeed width

It's just that you have to give it time to apply the XBL binding:

   http://software.hixie.ch/utilities/js/live-dom-viewer/saved/656


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 happy to change this, but I don't think removing them all is the way to go (at least Opera, Gecko, and IE have a lot in common, even if they don't all match the spec). More data is probably needed to determine exactly what is needed here, though.
Comment 5 Aryeh Gregor 2010-10-08 21:42:38 UTC
So new data:

* IE8: behavior bgColor direction height hspace loop onbounce onfinish onstart scrollAmount scrollDelay trueSpeed vspace width
* Gecko: align behavior direction dirsign height init innerDiv loop newPosition onbounce onfinish onstart originalHeight outerDiv runId scrollAmount scrollDelay start startAt startNewDirection stop stopAt trueSpeed width
* WebKit: start stop
* Opera: behavior direction height hspace loop scrollAmount scrollDelay
vspace width start stop

Analysis of specced attributes:

* start, stop: Supported by everyone
* behavior, direction, height, loop, scrollAmount, scrollDelay, width: Supported by everyone but WebKit
* trueSpeed, onbounce, onfinish, onstart: Supported by Trident and Gecko but not Opera
* hspace, vspace: IE/Opera only, definitely drop from spec
* bgColor: IE only, definitely drop from spec

So that's three we should be able to drop for sure: hspace, vspace, and bgColor aren't supported by Gecko *or* WebKit.  WebKit appears to really not support all the stuff it doesn't support, e.g.:

data:text/html,<!doctype html>
<body onload="document.getElementsByTagName('marquee')[0].direction = 'up'">
<marquee>Hello!</marquee>

works in Opera and Firefox but not Chrome, although

data:text/html,<!doctype html><marquee direction=up>Hello!</marquee>

works in all three.  Also see their IDL:

http://trac.webkit.org/browser/trunk/WebCore/html/HTMLMarqueeElement.idl

I'm trying to poke some WebKit people about whether they want to implement the remaining attributes; if they've seen no compat issues, it's probably safe to drop everything but start/stop from the spec.  I don't see any bugs filed in WebKit's Bugzilla:

https://bugs.webkit.org/buglist.cgi?short_desc_type=allwordssubstr&short_desc=marquee

But at least bgColor/hspace/vspace can be removed.
Comment 6 Ian 'Hixie' Hickson 2010-10-12 10:05:46 UTC
Given how cheap these are, is there a compelling reason to move away from IE here? I mean, I don't really mind, I'd be happy to drop the whole thing, but if it gets us compat with one more site, what's the harm?
Comment 7 Anne 2010-10-12 12:20:12 UTC
My idea was the less IDL clutter the better. But that really only applies to conforming elements. (I.e. not supporting leftMargin on <body>.)

For <marquee> I suppose IDL clutter does not matter. The cost is in supporting any of its content attributes.
Comment 8 Aryeh Gregor 2010-10-12 15:57:14 UTC
I don't really care, as long as we have something everyone is willing to converge on.  I don't know how many of the unsupported IDL attributes actually represent unsupported content attributes too, though, so it's possible some of these features would be not entirely trivial to add support for.
Comment 9 Ian 'Hixie' Hickson 2010-10-12 19:32:30 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:

Ok. I'm going to punt on this for now. Let's revisit it when we have test suites and there's momentum behind getting a bunch of browsers to 100% compliance. If we remove things, it means some browsers will have to remove them as well, don't forget. So either way browsers will have to change. I think we'll get the least resistance here to adding features, at least if they're just IDL reflection.
Comment 10 Aryeh Gregor 2010-12-06 23:46:52 UTC
Looks like WebKit agrees with you, since they apparently just implemented all this stuff per spec:

https://bugs.webkit.org/show_bug.cgi?id=49786