<!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>