| <!DOCTYPE HTML> |
| <html> |
| <head> |
| <script src="../../resources/accessibility-helper.js"></script> |
| <script src="../../resources/js-test.js"></script> |
| </head> |
| <body id="body" role="group"> |
| |
| <div id="item1"><span role="insertion">inserted text</span></div> |
| <div id="item2"><span role="deletion">deleted text</span></div> |
| <div id="item3"><span role="suggestion"><span role="insertion">hello</span><span role="deletion">hi</span></span></div> |
| |
| <script> |
| if (window.accessibilityController) { |
| window.jsTestIsAsync = true; |
| let output = "This verifies that using the insertion and deletion roles adds the attribute to the attributed string.\n"; |
| |
| var item1 = accessibilityController.accessibleElementById("item1"); |
| var markerRange = item1.textMarkerRangeForElement(item1); |
| output += expect("item1.attributedStringForTextMarkerRangeContainsAttribute('AXIsSuggestedInsertion', markerRange)", "true"); |
| |
| var item2 = accessibilityController.accessibleElementById("item2"); |
| markerRange = item2.textMarkerRangeForElement(item2); |
| output += expect("item2.attributedStringForTextMarkerRangeContainsAttribute('AXIsSuggestedDeletion', markerRange)", "true"); |
| |
| var item3 = accessibilityController.accessibleElementById("item3"); |
| markerRange = item3.textMarkerRangeForElement(item3); |
| output += expect("item3.attributedStringForTextMarkerRangeContainsAttribute('AXIsSuggestion', markerRange)", "true"); |
| setTimeout(async function() { |
| document.getElementById("item1").children[0].removeAttribute("role"); |
| document.getElementById("item2").children[0].removeAttribute("role"); |
| document.getElementById("item3").children[0].removeAttribute("role"); |
| |
| await waitFor(() => { |
| markerRange = item1.textMarkerRangeForElement(item1); |
| return !item1.attributedStringForTextMarkerRangeContainsAttribute("AXIsSuggestedInsertion", markerRange); |
| }); |
| |
| await waitFor(() => { |
| markerRange = item2.textMarkerRangeForElement(item2); |
| return !item2.attributedStringForTextMarkerRangeContainsAttribute("AXIsSuggestedDeletion", markerRange); |
| }); |
| |
| await waitFor(() => { |
| markerRange = item3.textMarkerRangeForElement(item3); |
| return !item3.attributedStringForTextMarkerRangeContainsAttribute("AXIsSuggestion", markerRange); |
| }); |
| |
| debug(output); |
| finishJSTest(); |
| }, 0); |
| } |
| </script> |
| </body> |
| </html> |