<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <defs>
    <script type="text/ecmascript">
      <![CDATA[
        function changeColor(evt) {
          evt.target.setAttribute('fill', 'green'); 
          evt.stopPropagation();
          evt.preventDefault();
          if (window.layoutTestController)
            window.setTimeout("layoutTestController.notifyDone()", 0);
        }
        
        function sendClick() {
          if (window.eventSender) {
            eventSender.mouseMoveTo(50, 50);
            eventSender.mouseDown();
            eventSender.mouseUp();
          }
        }
        
        if (window.layoutTestController)
          layoutTestController.waitUntilDone();
        
        window.setTimeout("sendClick()", 0);
      ]]>
    </script>
  </defs>
  <a xlink:href="javascript:document.getElementById('rect').style.fill='red'">
    <rect id='rect' onclick="changeColor(evt)" width='100' height='100' fill='orange' />
  </a>
</svg>
