<!DOCTYPE html> 
<html>
  <head>
    <title>ARIA 1.0 Test Case 682</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <h1>ARIA 1.0 Test Case 682</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="assertive". After the onload event completes a child DOM text node is 
      added to the element with the aria-live attribute.</p>
    
    <script type="text/javascript">  
  
      function addChildTextNode() {
        var node = document.getElementById('TEST_ID_2');  
        var text_node = document.createTextNode("TEST TEXT");        
        node.appendChild(text_node);
      }

      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', 'assertive');
        node.appendChild(element_node);
        setTimeout(addChildTextNode,1000);
      }

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