This test records target and relatedTarget at each element while dispatching a mouse click event at an input element.


Content:<div id="detailsContainer"><details><summary><div id="divInsideSummary"><input id="target" type="text" size="10"></div></summary></details></div>

mouseover@input#target
    target:input#target
    relatedTarget:null

mouseover@div#divInsideSummary
    target:input#target
    relatedTarget:null

mouseover@summary
    target:input#target
    relatedTarget:null

mouseover@details
    target:input#target
    relatedTarget:null

mouseover@div#detailsContainer
    target:input#target
    relatedTarget:null

mouseover@body
    target:input#target
    relatedTarget:null

mouseover@html
    target:input#target
    relatedTarget:null

mouseover@document
    target:input#target
    relatedTarget:null

mouseover@window
    target:input#target
    relatedTarget:null

mouseenter@html
    target:html
    relatedTarget:null

mouseenter@body
    target:body
    relatedTarget:null

mouseenter@div#detailsContainer
    target:div#detailsContainer
    relatedTarget:null

mouseenter@details
    target:details
    relatedTarget:null

mouseenter@summary
    target:summary
    relatedTarget:null

mouseenter@div#divInsideSummary
    target:div#divInsideSummary
    relatedTarget:null

mouseenter@input#target
    target:input#target
    relatedTarget:null

mousemove@input#target
    target:input#target
    relatedTarget:null

mousemove@div#divInsideSummary
    target:input#target
    relatedTarget:null

mousemove@summary
    target:input#target
    relatedTarget:null

mousemove@details
    target:input#target
    relatedTarget:null

mousemove@div#detailsContainer
    target:input#target
    relatedTarget:null

mousemove@body
    target:input#target
    relatedTarget:null

mousemove@html
    target:input#target
    relatedTarget:null

mousemove@document
    target:input#target
    relatedTarget:null

mousemove@window
    target:input#target
    relatedTarget:null

mouseout@input#target
    target:input#target
    relatedTarget:div#divInsideSummary

mouseout@div#divInsideSummary
    target:input#target
    relatedTarget:div#divInsideSummary

mouseout@summary
    target:input#target
    relatedTarget:div#divInsideSummary

mouseout@details
    target:input#target
    relatedTarget:div#divInsideSummary

mouseout@div#detailsContainer
    target:input#target
    relatedTarget:div#divInsideSummary

mouseout@body
    target:input#target
    relatedTarget:div#divInsideSummary

mouseout@html
    target:input#target
    relatedTarget:div#divInsideSummary

mouseout@document
    target:input#target
    relatedTarget:div#divInsideSummary

mouseout@window
    target:input#target
    relatedTarget:div#divInsideSummary

mouseleave@input#target
    target:input#target
    relatedTarget:div#divInsideSummary

mouseover@div#divInsideSummary
    target:div#divInsideSummary
    relatedTarget:input#target

mouseover@summary
    target:div#divInsideSummary
    relatedTarget:input#target

mouseover@details
    target:div#divInsideSummary
    relatedTarget:input#target

mouseover@div#detailsContainer
    target:div#divInsideSummary
    relatedTarget:input#target

mouseover@body
    target:div#divInsideSummary
    relatedTarget:input#target

mouseover@html
    target:div#divInsideSummary
    relatedTarget:input#target

mouseover@document
    target:div#divInsideSummary
    relatedTarget:input#target

mouseover@window
    target:div#divInsideSummary
    relatedTarget:input#target

mousemove@div#divInsideSummary
    target:div#divInsideSummary
    relatedTarget:null

mousemove@summary
    target:div#divInsideSummary
    relatedTarget:null

mousemove@details
    target:div#divInsideSummary
    relatedTarget:null

mousemove@div#detailsContainer
    target:div#divInsideSummary
    relatedTarget:null

mousemove@body
    target:div#divInsideSummary
    relatedTarget:null

mousemove@html
    target:div#divInsideSummary
    relatedTarget:null

mousemove@document
    target:div#divInsideSummary
    relatedTarget:null

mousemove@window
    target:div#divInsideSummary
    relatedTarget:null

mousedown@div#divInsideSummary
    target:div#divInsideSummary
    relatedTarget:null

mousedown@summary
    target:div#divInsideSummary
    relatedTarget:null

mousedown@details
    target:div#divInsideSummary
    relatedTarget:null

mousedown@div#detailsContainer
    target:div#divInsideSummary
    relatedTarget:null

mousedown@body
    target:div#divInsideSummary
    relatedTarget:null

mousedown@html
    target:div#divInsideSummary
    relatedTarget:null

mousedown@document
    target:div#divInsideSummary
    relatedTarget:null

mousedown@window
    target:div#divInsideSummary
    relatedTarget:null

mouseup@div#divInsideSummary
    target:div#divInsideSummary
    relatedTarget:null

mouseup@summary
    target:div#divInsideSummary
    relatedTarget:null

mouseup@details
    target:div#divInsideSummary
    relatedTarget:null

mouseup@div#detailsContainer
    target:div#divInsideSummary
    relatedTarget:null

mouseup@body
    target:div#divInsideSummary
    relatedTarget:null

mouseup@html
    target:div#divInsideSummary
    relatedTarget:null

mouseup@document
    target:div#divInsideSummary
    relatedTarget:null

mouseup@window
    target:div#divInsideSummary
    relatedTarget:null

click@div#divInsideSummary
    target:div#divInsideSummary
    relatedTarget:null

click@summary
    target:div#divInsideSummary
    relatedTarget:null

click@details
    target:div#divInsideSummary
    relatedTarget:null

click@div#detailsContainer
    target:div#divInsideSummary
    relatedTarget:null

click@body
    target:div#divInsideSummary
    relatedTarget:null

click@html
    target:div#divInsideSummary
    relatedTarget:null

click@document
    target:div#divInsideSummary
    relatedTarget:null

click@window
    target:div#divInsideSummary
    relatedTarget:null

mousemove@div#divInsideSummary
    target:div#divInsideSummary
    relatedTarget:null

mousemove@summary
    target:div#divInsideSummary
    relatedTarget:null

mousemove@details
    target:div#divInsideSummary
    relatedTarget:null

mousemove@div#detailsContainer
    target:div#divInsideSummary
    relatedTarget:null

mousemove@body
    target:div#divInsideSummary
    relatedTarget:null

mousemove@html
    target:div#divInsideSummary
    relatedTarget:null

mousemove@document
    target:div#divInsideSummary
    relatedTarget:null

mousemove@window
    target:div#divInsideSummary
    relatedTarget:null


