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 14895 - MouseEventInit not defined by [DOMEVENTS] (DOM-3 Events)
Summary: MouseEventInit not defined by [DOMEVENTS] (DOM-3 Events)
Status: CLOSED FIXED
Alias: None
Product: HTML WG
Classification: Unclassified
Component: HTML5 spec (show other bugs)
Version: unspecified
Hardware: All All
: P2 normal
Target Milestone: ---
Assignee: This bug has no owner yet - up for the taking
QA Contact: HTML WG Bugzilla archive list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-11-21 16:18 UTC by Glenn Adams
Modified: 2012-09-12 00:25 UTC (History)
5 users (show)

See Also:


Attachments

Description Glenn Adams 2011-11-21 16:18:37 UTC
Section 2.2.2 Dependencies specifies that MouseEventInit is defined by [DOMEVENTS], which is linked to [1], but which does not define MouseEventInit.

[1] http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html

MouseEventInit is presently defined in [2].

[2] http://html5labs.interoperabilitybridges.com/dom4events/

See also bug 14051 (WebApps).
Comment 1 Ian 'Hixie' Hickson 2011-12-07 22:54:45 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: This seems like a bug in the DOM Events spec, not the HTML spec.
Comment 2 Glenn Adams 2011-12-07 23:05:17 UTC
(In reply to comment #1)
> 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: This seems like a bug in the DOM Events spec, not the HTML spec.

The problem is that the HTML5 spec refers to DOM3 Events spec [1], which defines *no* initialization dictionary types whatsoever.

[1] [1] http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html

This is not a bug in DOM-3 Events.

If HTML5 is going to depend on initialization dictionaries, then it must refer to DOM-4 [2] Events instead of DOM-3 Events.

[2] http://html5labs.interoperabilitybridges.com/dom4events/

Alternatively, all references to initialization dictionaries should be removed from HTML5 if the DOM-3 Events reference is to stand.
Comment 3 Ian 'Hixie' Hickson 2011-12-09 00:21:29 UTC
DOM Events should define the dictionaries for its events. I don't really care what the URL is. I do care that the spec actually define things. [2] has virtually no prose and I am skeptical that it is a replacement for [1] in its current state. Neither currently actually define the dictionaries, but I have more faith that [1] will eventually do so that that [2] will.
Comment 4 Travis Leithead [MSFT] 2012-09-07 23:53:36 UTC
I'm not sure if this helps, but DOM3 Events now describes (non-normatively) the MouseEventInit dictionary:

http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html#idl-interface-MouseEvent-initializers

If a normative reference to a spec defining (non-normatively) the dictionary type is acceptable, then we can make progress on this bug. Otherwise, we may need to take a more creative route.
Comment 5 Glenn Adams 2012-09-08 00:04:48 UTC
(In reply to comment #4)
> I'm not sure if this helps, but DOM3 Events now describes (non-normatively) the
> MouseEventInit dictionary:
> 
> http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html#idl-interface-MouseEvent-initializers
> 
> If a normative reference to a spec defining (non-normatively) the dictionary
> type is acceptable, then we can make progress on this bug. Otherwise, we may
> need to take a more creative route.

Since the DragEventInit type in 7.7.4 [1] purports to be a normative definition that derives from MouseEventInit type as its super-interface, then either we need a normative definition of MouseEventInit or we need to remove the super-interface dependency.

Since you are a co-editor of DOMEVENTS, perhaps the simple fix is to make the definitions normative.

[1] http://dev.w3.org/html5/spec/single-page.html#the-dragevent-interface
Comment 6 Travis Leithead [MSFT] 2012-09-10 17:09:26 UTC
(In reply to comment #5)
> Since the DragEventInit type in 7.7.4 [1] purports to be a normative definition
> that derives from MouseEventInit type as its super-interface, then either we
> need a normative definition of MouseEventInit or we need to remove the
> super-interface dependency.
> 
> Since you are a co-editor of DOMEVENTS, perhaps the simple fix is to make the
> definitions normative.

It's not quite that easy, and given DOM L3 Events is in 2nd last call, I really want to avoid anything to slow that spec down.

I have a better idea--I'll remove the super-dictionary inheritance here and just copy over the full dictionary definition from DOM3Events + the new stuff. The net effect is the same for implementations (no functional change), it just doesn't have the nice factoring. However, since this is the only occurrence on such a definition, I think that's OK.
Comment 7 Travis Leithead [MSFT] 2012-09-10 17:57:37 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: Accepted
Change Description: Removed normative reference to non-normative MouseEventInit dictionary by absorbing the relevant portions of the dictionary into HTML5.

Checkin preview: https://github.com/w3c/html/commit/297e6e65177e0e08800b9c0e9ee2caed55e8cd7e
Comment 8 Glenn Adams 2012-09-11 00:28:48 UTC
while I would prefer changing DOM3 EVENTS to make the definition of MouseEventInit normative, I can accept this fix; however, note that this fix does not support the ability to perform instanceof MouseEventInit, which would have been available if MouseEventInit were defined on its own;

another alternative would have been defining a normative MouseEventInit in HTML5 itself;
Comment 9 Travis Leithead [MSFT] 2012-09-11 16:30:55 UTC
(In reply to comment #8)
> while I would prefer changing DOM3 EVENTS to make the definition of
> MouseEventInit normative, I can accept this fix; however, note that this fix
> does not support the ability to perform instanceof MouseEventInit, which would
> have been available if MouseEventInit were defined on its own;
> 
> another alternative would have been defining a normative MouseEventInit in
> HTML5 itself;

Thanks for closing.

Actually, you misunderstand the structure of a dictionary definition. Dictionaries are solely meant to be "implemented by" JavaScript objects (per WebIDL), so really it was never possible to do an instanceof check, or an:
if (window.MouseEventInit) check.
Comment 10 Glenn Adams 2012-09-12 00:25:45 UTC
(In reply to comment #9)
> (In reply to comment #8)
> > while I would prefer changing DOM3 EVENTS to make the definition of
> > MouseEventInit normative, I can accept this fix; however, note that this fix
> > does not support the ability to perform instanceof MouseEventInit, which would
> > have been available if MouseEventInit were defined on its own;
> > 
> > another alternative would have been defining a normative MouseEventInit in
> > HTML5 itself;
> 
> Thanks for closing.
> 
> Actually, you misunderstand the structure of a dictionary definition.
> Dictionaries are solely meant to be "implemented by" JavaScript objects (per
> WebIDL), so really it was never possible to do an instanceof check, or an:
> if (window.MouseEventInit) check.

Thanks for that correction. I assumed (wrongly) that a Dictionary operated like an Interface, and had a corresponding Interface object.