<!DOCTYPE html> 
<html>
  <head>
    <title>ARIA 1.0 Test Case 716</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <h1>ARIA 1.0 Test Case 716</h1>
   
 
    <div id="TEST_ID_1">
    </div>
    
    <h2>Description</h2>
    <p>The aria-live attribute is added to an element in the document by a script 
      after the onload event completes with the value="polite" and the element has 
      a child DOM element node that contains text content. After the aria-live 
      attribute is added, the child DOM element node is deleted.</p>
    
    <script type="text/javascript">  

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

      function addLiveRegion() {
        var node = document.getElementById('TEST_ID_1');  
        
        node.setAttribute('aria-live', 'assertive');
       
        var text_node = document.createTextNode('TEST TEXT');
        
        node.appendChild(text_node);
        
        setTimeout(deleteChildNodes,500);
      }

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