<!DOCTYPE html> 
<html>
  <head>
    <title>ARIA 1.0 Test Case 707</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <h1>ARIA 1.0 Test Case 707</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" and the element has a child 
      DOM element node that contains text content. After the onload event completes 
      the child DOM element node is deleted.</p>
    
    <script type="text/javascript">  

      function deleteChildNodes() {
        var node  = document.getElementById('TEST_ID_2');  
        while (node.firstChild) node.removeChild(node.firstChild);
      }

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

        var element_node = document.createElement('div');
        
        var text_node = document.createTextNode('TEST TEXT');
        element_node.appendChild(text_node);
        live_node.appendChild(element_node);
        node.appendChild(live_node);
        setTimeout(deleteChildNodes,1000);
      }

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