text: <!DOCTYPE html>
  <html  lang="en" >
  <head>
  <meta charset="utf-8"/>
  <title>CSS text, linebreaks: PO AFW (strict,ja)</title>
  <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
  <link rel="help" href="https://drafts.csswg.org/css-text-3/#line-break-property">
  <script src="/resources/testharness.js"></script>
  <script src="/resources/testharnessreport.js"></script>
  <meta name="assert" content="When the language is Japanese, and line-break:strict, a browser will NOT allow a break before a PO character with East Asian Width of A, F, or W.">
  <style type="text/css">
  @font-face {
      font-family: 'mplus-1p-regular';
      src: url('/fonts/mplus-1p-regular.woff') format('woff');
      }
  #wrapper { position: relative; }
  .test { color: red; }
  .test, .ref { font-size: 30px; font-family: mplus-1p-regular, sans-serif; width: 185px; padding: 0; border: 1px solid orange; line-height: 1em; }
  </style>
  <style>
  .test { line-break: strict; }
  </style>
  <script>
  var charlist = `00B0  DEGREE SIGN
  2030  PER MILLE SIGN
  2032  PRIME
  2033  DOUBLE PRIME
  2035  REVERSED PRIME
  2103  DEGREE CELSIUS
  2109  DEGREE FAHRENHEIT
  FE6A  SMALL PERCENT SIGN
  FF05  FULLWIDTH PERCENT SIGN
  FFE0  FULLWIDTH CENT SIGN`
  </script>
  </head>
  <body>
  <script>
  var lines = charlist.split('\n')
  var out = '<div id="log"></div>\n'
  for (var i=0;i<lines.length;i++) {
  	// get the data
  	var firstSpace = lines[i].indexOf(' ')
  	var hex = lines[i].substr(0,firstSpace)
  	var name = lines[i].substr(firstSpace)
  	// make a test
  	out +=  '<div class="wrapper"><div>'+hex+'</div>' +
  	'<div class="test" id="test'+i+'" lang="ja">文文文文文文&#x'+hex+';字<span id="testSpan'+i+'">字</span></div>' +
  	 '<div class="ref" id="ref'+i+'" lang="ja">文文文文文<br/>文&#x'+hex+';字<span id="refSpan'+i+'">字</span></div>' +
  	 '</div>'
  	}
  function spansNearEnough(counter) {
    return Math.abs( document.getElementById('testSpan'+counter).getBoundingClientRect().left
             - document.getElementById('refSpan'+counter).getBoundingClientRect().left ) < 1;
  }
  
  document.querySelector('body').innerHTML = out
  setup({explicit_done: true});
  
  document.fonts.ready.then(validate);
  
  function validate() {
    for (i=0;i<lines.length;i++) {
      test(function() {
        assert_true(spansNearEnough(i));
      }, lines[i]+' may NOT appear at line start if ja and strict');
      // Hide successful tests.
      if (spansNearEnough(i)) document.getElementById('test'+i).parentNode.style.display = 'none'
    }
    done();
  }
  </script>
  <!--Notes:
  The test creates a box with room for 6 characters, causing wrapping to occur either between the 6th and the 7th character, or before the 6th if the breaks after the 6th or before the 7th are prohibited.
  
  It also creates the expected behaviour with a ref instance, using <br/>. Each line ends with a span. The test then checks whether the left edge of the span is in the same place in test and ref instance.
  -->
  </body>
  </html>
  