| <!-- |
| @UIA-WIN-DENY:* |
| @UIA-WIN-ALLOW:AriaProperties* |
| --> |
| <!DOCTYPE html> |
| <form> |
| <div aria-label="checkbox1" role="checkbox"></div> |
| <div aria-label="checkbox2" role="checkbox" aria-checked="false" aria-required="false" aria-readonly="false"></div> |
| <div aria-label="checkbox3" role="checkbox" aria-checked="true" aria-required="true" aria-readonly="true"></div> |
| <div aria-label="checkbox4" role="checkbox" aria-checked="true" aria-required="true" aria-readonly="true"></div> |
| </form> |
| <script> |
| function go() { |
| // Tests below modify multiple aria attributes on a single element at |
| // a time and the expected behavior is to fire UIA_AriaPropertiesPropertyId |
| // event once rather than multiple times. |
| |
| // Multiple aria attributes change, default[false]->false; |
| // should not fire any event. |
| document.querySelector('div[aria-label=checkbox1]').setAttribute('aria-checked', false); |
| document.querySelector('div[aria-label=checkbox1]').setAttribute('aria-required', false); |
| document.querySelector('div[aria-label=checkbox1]').setAttribute('aria-readonly', false); |
| |
| // Multiple aria attributes change, false->true; |
| // should fire only one event. |
| document.querySelector('div[aria-label=checkbox2]').setAttribute('aria-checked', true); |
| document.querySelector('div[aria-label=checkbox2]').setAttribute('aria-required', true); |
| document.querySelector('div[aria-label=checkbox2]').setAttribute('aria-readonly', true); |
| |
| // Multiple aria attributes change, true->false; |
| // should fire only one event. |
| document.querySelector('div[aria-label=checkbox3]').setAttribute('aria-checked', false); |
| document.querySelector('div[aria-label=checkbox3]').setAttribute('aria-required', false); |
| document.querySelector('div[aria-label=checkbox3]').setAttribute('aria-readonly', false); |
| |
| // Multiple aria attributes change, true->removed; |
| // should fire only one event. |
| document.querySelector('div[aria-label=checkbox4]').removeAttribute('aria-checked'); |
| document.querySelector('div[aria-label=checkbox4]').removeAttribute('aria-required'); |
| document.querySelector('div[aria-label=checkbox4]').removeAttribute('aria-readonly'); |
| } |
| </script> |