<!DOCTYPE html> 
<html>
  <head>
    <title>ARIA 1.0 Test Case 683</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <h1>ARIA 1.0 Test Case 683</h1>
    
    <div id="TEST_ID_1">
    </div>
    
    <h2>Description</h2>
    <p>An element with an aria-live attribute is added to the document by a script during the onload 
      event with the value="polite". After the onload event completes a child DOM element node is 
      added to the element with the aria-live attribute.</p>
    
    <script type="text/javascript">  
  
      function addChildElementNode() {
        var node         = document.getElementById('TEST_ID_2');  
        var element_node = document.createElement('div');
        var text_node    = document.createTextNode("TEST TEXT");
        element_node.appendChild(text_node);
        node.appendChild(element_node);
      }

      function addLiveRegion() {
        var node       = document.getElementById('TEST_ID_1');  
        var live_node  = document.createElement('div');        
        live_node.setAttribute('id', 'TEST_ID_2');
        live_node.setAttribute('aria-live', 'polite');
        node.appendChild(live_node);
        setTimeout(addChildElementNode,1000);
      }

      function onload() {
        addLiveRegion();
      }
     
      window.addEventListener('load', onload);
    </script>
  </body>
  
</html>
