<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../../fast/js/resources/js-test-pre.js"></script>

    <style type="text/css">
    
        h1:before {
            content: 'This is a';
        }
    
        h1:after {
            content: 'Headline';
        }
         
    </style>

</head>
<body id="body">
<h1>SAMPLE</h1>

<p id="description"></p>
<div id="console"></div>

<script>

    description("This tests that when the content attribute in CSS is used, the correct values are returned.");

    if (window.accessibilityController) {

          document.getElementById("body").focus();
          var body = accessibilityController.focusedElement;

          // Test that all three children in the header appear with the correct values.
          shouldBe("body.childAtIndex(0).childAtIndex(0).role", "'AXRole: AXStaticText'");
          shouldBe("body.childAtIndex(0).childAtIndex(1).role", "'AXRole: AXStaticText'");
          shouldBe("body.childAtIndex(0).childAtIndex(2).role", "'AXRole: AXStaticText'");

          shouldBe("body.childAtIndex(0).childAtIndex(0).stringValue", "'AXValue: This is a'");
          shouldBe("body.childAtIndex(0).childAtIndex(1).stringValue", "'AXValue: SAMPLE'");
          shouldBe("body.childAtIndex(0).childAtIndex(2).stringValue", "'AXValue: Headline'");
    }

</script>

<script src="../../../fast/js/resources/js-test-post.js"></script>
</body>
</html>
