| <!DOCTYPE html> |
| <html> |
| <title id="title">TITLE</title> |
| <head> |
| <script src="../../resources/js-test-pre.js"></script> |
| </head> |
| <body> |
| |
| <style> |
| |
| /* alt on image content with attr() function. */ |
| [test1]::after { |
| content: url(resources/cake.png); |
| alt: attr(test1); |
| } |
| |
| /* alt on image content that is a string. */ |
| .test2::after { |
| content: url(resources/cake.png); |
| alt: "ALTERNATIVE CONTENT TEST2"; |
| } |
| |
| /* alt on image content that is an empty string - representing that it should be ignored. */ |
| .test3::after { |
| content: url(resources/cake.png); |
| alt: ""; |
| } |
| |
| /* alt on text content. */ |
| [aria-expanded="test4"]::before { |
| content: "\25BB"; |
| alt: "ALTERNATIVE CONTENT TEST4"; |
| } |
| |
| /* alt on text content that is an empty string - representing that is should be ignored. */ |
| [aria-expanded="test5"]::before { |
| content: "\25BC"; |
| alt: ""; |
| } |
| |
| /* alt on text content that uses the attr() function. */ |
| [aria-expanded="test6"]::before { |
| content: "\25BC"; |
| alt: attr(test6); |
| } |
| </style> |
| |
| <div id="content"> |
| <div id="test1" test1="ALTERNATIVE CONTENT TEST1">test1</div> |
| <div id="test2" class="test2">test2</div> |
| <div id="test3" class="test3">test3</div> |
| <div id="test4" aria-expanded="test4">test4</div> |
| <div id="test5" test5="ALTERNATIVE CONTENT TEST5" aria-expanded="test5">test5</div> |
| <div id="test6" test6="ALTERNATIVE CONTENT TEST6" aria-expanded="test6">test6</div> |
| |
| <img id="image1" src="#" alt="This is the right text" style="width:100px; height:100px; -webkit-alt: 'this is the wrong text';"> |
| </div> |
| |
| <p id="description"></p> |
| <div id="console"></div> |
| |
| <script> |
| description("This tests that alt (formerly known as -webkit-alt) applies to text and image content in CSS styles, and that it makes it to accessibility."); |
| |
| function outputElement(element) { |
| var role = "AXRole: "; |
| var description = "AXDescription: "; |
| var title = "AXTitle: "; |
| var value = "AXValue: "; |
| if (element) { |
| role = element.role; |
| description = element.description; |
| title = element.title; |
| value = element.stringValue; |
| } |
| debug(role); |
| debug(description); |
| debug(title); |
| debug(value + "\n"); |
| } |
| |
| if (window.accessibilityController) { |
| debug("Test1 - alt on image content with attr() function"); |
| outputElement(accessibilityController.accessibleElementById("test1").childAtIndex(1)); |
| |
| debug("Test2 - alt on image content that is a string"); |
| outputElement(accessibilityController.accessibleElementById("test2").childAtIndex(1)); |
| |
| debug("Test3 - alt on image content that is an empty string - representing that it should be ignored."); |
| outputElement(accessibilityController.accessibleElementById("test3").childAtIndex(1)); |
| |
| debug("Test4 - alt on text content"); |
| outputElement(accessibilityController.accessibleElementById("test4").childAtIndex(0)); |
| |
| debug("Test5 - alt on text content that is an empty string - representing that is should be ignored."); |
| outputElement(accessibilityController.accessibleElementById("test5").childAtIndex(0)); |
| |
| debug("Test6 - alt on text content that uses the attr() function."); |
| outputElement(accessibilityController.accessibleElementById("test6").childAtIndex(0)); |
| |
| debug("alt accessed through Javascript: " + getComputedStyle(document.getElementById("test2"), ':after').alt); |
| |
| debug("Test7 - alt does not apply to DOM nodes."); |
| outputElement(accessibilityController.accessibleElementById("image1")); |
| |
| document.getElementById("content").style.visibility = "hidden"; |
| } |
| |
| </script> |
| |
| <script src="../../resources/js-test-post.js"></script> |
| </body> |
| </html> |