<!DOCTYPE html> 
<html>
  <head>
    <title>ARIA 1.0 Test Case 705</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <h1>ARIA 1.0 Test Case 705</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 
      text node with content. After the onload event completes the child DOM text 
      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 element_node = document.createElement('div');
        element_node.setAttribute('id', 'TEST_ID_2');
        element_node.setAttribute('aria-live', 'polite');
        var text_node = document.createTextNode('TEST TEXT');
        element_node.appendChild(text_node);
        node.appendChild(element_node);
        setTimeout(deleteChildNodes,500);
      }

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