<!DOCTYPE html>
<html><head>
    <title>ARIA 1.0 Test Case: Listbox role with multiseclect</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <style type="text/css">
      [aria-selected="true"] { font-weight: bold; }
    </style>
  </head>
  <body>
    <h1>ARIA 1.0 Test Case: Listbox role with multiseclect</h1>
        
    <div role="listbox" aria-multiselectable="true">
      <div role="option">Option 1</div> 
      <div role="option" aria-selected="false" tabindex="-1">Option 2 (test for selected)</div> 
      <div role="option" aria-selected="false" id="ID_TARGET" tabindex="0">Option 3 (test for selected)</div> 
      <div role="option">Option 4</div> 
    </div>
    <p><button onclick="toggleSelectedState();">Toggle Option 3 Selected State</button>
    
    <h2>Description</h2>
    <p>A DIV element with role role "listbox" has an aria-multiselect attribute set to "true".
       Two of the four child "div" elements with the role "option" have the "aria-selected" attribute set 
       to "true".</p>
    
    <h2>Accessibility API Mappings</h2>
    
    <h3>MSAA + UIA Express</h3>
    <p>Expose <code>STATE_SYSTEM_SELECTED</code>; Expose <code>STATE_SYSTEM_SELECTABLE</code></p>
      
    <h3>MSAA + IAccessible2</h3>
    <p>Expose STATE_SYSTEM_SELECTED and STATE_SYSTEM_SELECTABLE for each of the elements with role option</p>
          
    <h3>UIA</h3>
    <p>Expose IsSelected property in SelectionItem Control Pattern. The availability of the SelectionItem Control Pattern indicates the item is selectable.</p>
      
    <h3>ATK/AT-SPI</h3>
    <p>Expose STATE_SELECTED on each of the elements with role option.</p>
      
    <h3>AXAPI</h3>
    <p>AXSelected:Yes on option 2 and 3 and AXSelected:No on option 1 and 4</p>
    
    <script type="text/javascript">  
/*      
     function setSelection() {
       var node = document.getElementById('ID_TARGET');  
       node.setAttribute("aria-selected","true");
     }
     
     window.addEventListener('load', setSelection);
*/     
     function toggleSelectedState() {
       var el = document.getElementById('ID_TARGET');
       if (el.getAttribute('aria-selected') == 'true')
         el.setAttribute('aria-selected', 'false');
       else
         el.setAttribute('aria-selected', 'true');
     }
     
    </script>
  
  


</body></html>
