§4.4 Dispatching events and "participating in a tree"

The "dispatch an event" algorithm branches depending on whether the 
event target is "participating in a tree".  At first, I was thinking 
about nodes only and assumed this test was checking whether parentNode 
was null or not, since capturing and bubbling don't make sense for nodes 
that have no parent.  But the definition of "participating in a tree" 
just says that the object has a parent (even if it is null) and children....

Does the language really need to be this general?  Are events ever 
dispatched on trees that are not document trees?  I don't think that 
events ever bubble up a tree of frames, do they?

So couldn't the algorithm branch based on whether target is a Node and 
parentNode is non-null instead of the vaguer and more confusing 
"participating in a tree" test?

And here's a related question...  I've never tried registering a 
capturing event handler on a non-Node event target like an XHR.  Such an 
event handler could never be invoked, though.  So should the 
addEventListener() method include the "participates in a tree" test and 
throw an exception if the 3rd argument is true?

     David

Received on Monday, 4 July 2011 21:14:45 UTC