- From: Jacob Rossi <Jacob.Rossi@microsoft.com>
- Date: Fri, 6 May 2011 00:55:43 +0000
- To: "Olli@pettay.fi" <Olli@pettay.fi>, Ryosuke Niwa <rniwa@webkit.org>
- CC: "www-dom@w3.org" <www-dom@w3.org>
> -----Original Message-----
> From: Olli Pettay [mailto:Olli.Pettay@helsinki.fi]
> Sent: Thursday, May 05, 2011 6:04 AM
> To: Ryosuke Niwa
> Cc: www-dom@w3.org; Jacob Rossi
> Subject: Re: Click event on button element when event targets of the associated
> mousedown and mouseup are different
>
> On 04/16/2011 02:20 AM, Ryosuke Niwa wrote:
> > On Fri, Apr 15, 2011 at 2:54 AM, Olli Pettay <Olli.Pettay@helsinki.fi
> > <mailto:Olli.Pettay@helsinki.fi>> wrote:
> >
> > Nope, it is not the DOM 3 Events definition of click which leads to
> > that bug. It is the hit testing. In Firefox hit testing leads mouse
> > events to be dispatched to button element and click event dispatching to
> > work per the spec also in this case.
> >
> >
> > Oh, sure. I didn't mean that Firefox's behavior is due to DOM Level 3
> > Events. I only referred to it to be the cause of the WebKit bug.
> >
> > On Fri, Apr 15, 2011 at 2:59 AM, Olli Pettay <Olli.Pettay@helsinki.fi
> > <mailto:Olli.Pettay@helsinki.fi>> wrote:
> >
> > Nope, it is not the DOM 3 Events definition of click which leads
> > to that
> > bug. It is the hit testing. In Firefox hit testing leads mouse
> > events to
> > be dispatched to button element and click event dispatching to
> > work per the spec also in this case.
> >
> >
> > I could still add that the reason for Firefox's behavior is HTML 4 spec
> > "Buttons created with the BUTTON element function just like buttons
> > created with the INPUT element, but they offer richer rendering
> > possibilities"
> >
> >
> > I see. That's a reasonable argument. In fact, IE7 / IE8 seem to have
> > the same behavior.
> >
> > Should D3E define hit testing? I feel like D3E is a better place to
> > spec this than HTML5 but I'm not even sure if we can spec precisely
> > because there might be some platform/browser-specific behavior that
> > needs to be maintained.
> >
> > Now putting hit-testing problem aside, do you think we should only
> > fire a click event when target nodes match?
> >
> > If there are no strong oppositions, *I'd like to propose to change the
> > spec to always fire click events on the lowest common ancestor* so
> > that websites can at least catch the event on button element in the
> > said situation.
> Well, the button element behavior depends on hit testing.
> Couldn't webkit do what Gecko/IE7/IE8/Opera do?
>
>
> >
> > IE9 seems to special case button element and doesn't fire click event
> > when mousedown happens inside button and mouseup happens elsewhere
> but
> > that's an edge case that might not be worth spec'ing right now.
>
>
> Jacob, do you know why IE9 doesn't handle click event according to D3E?
>
This is not the behavior I'm witnessing in IE9. I see IE9 matching Gecko/IE7/IE8: all events target the button.
I think this should be defined, but in HTML5 because it's specific to the BUTTON element.
Here's my test page:
<!DOCTYPE html>
<html>
<head>
<title>BUTTON mouse events targeting</title>
</head>
<body>
<button> www <span> DOM </span> level 3</button>
<div id="log"></div>
<script>
function log(e) {
e = e || window.event;
t = e.target || e.srcElement;
document.getElementById("log").innerHTML += e.type + ": " + t.tagName + "<br>";
}
window.onload = function(){
if(window.addEventListener) {
window.addEventListener("mousedown",log,false);
window.addEventListener("mouseup",log,false);
window.addEventListener("click",log,false);
}else{
document.attachEvent("onmousedown",log);
document.attachEvent("onmouseup",log);
document.attachEvent("onclick",log);
}
}
</script>
</body>
</html>
>
> -Olli
>
>
Received on Friday, 6 May 2011 00:56:11 UTC