| <html> |
| <head> |
| <meta http-equiv='content-language' content='de' /> |
| <script src="../resources/accessibility-helper.js"></script> |
| <script src="../resources/js-test.js"></script> |
| </head> |
| <body> |
| |
| <!-- It is intentional that #wrapper is an ignored element, proving that we still respect lang attributes on ignored objects. --> |
| <div id="wrapper"> |
| <div id="content" lang="en">Hello World!</div> |
| </div> |
| |
| <script> |
| var output = "This test ensures the language attribute is correct even after dynamic page changes.\n"; |
| if (window.accessibilityController) { |
| window.jsTestIsAsync = true; |
| |
| var content = document.getElementById("content"); |
| var accessibleContent = accessibilityController.accessibleElementById("content"); |
| output += expect("accessibleContent.language", "'AXLanguage: en'"); |
| |
| content.setAttribute("lang", "es"); |
| setTimeout(async function() { |
| output += await expectAsync("accessibleContent.language", "'AXLanguage: es'"); |
| |
| content.removeAttribute("lang"); |
| document.getElementById("wrapper").setAttribute("lang", "fr"); |
| output += await expectAsync("accessibleContent.language", "'AXLanguage: fr'"); |
| |
| document.getElementsByTagName("head")[0].innerHTML += ""; |
| document.getElementById("wrapper").removeAttribute("lang"); |
| // Fallback to the meta tag content language. |
| output += await expectAsync("accessibleContent.language", "'AXLanguage: de'"); |
| |
| debug(output); |
| finishJSTest(); |
| }, 0); |
| } |
| </script> |
| </body> |
| </html> |