1

I'm hitting this warning when validating a HTML5 document with the W3C Validator:

Text run is not in Unicode Normalization Form C

On the last line of this block of code:

<input type="radio" name="bullets" id="bullets1" value="1" checked>
<label for="bullets1">&#9632;</label>&nbsp;&nbsp;
<input type="radio" name="bullets" id="bullets2" value="2">
<label for="bullets2">&#9679;</label>&nbsp;&nbsp;
<input type="radio" name="bullets" id="bullets3" value="3">
<label for="bullets3">&omicron;</label>&nbsp;&nbsp;
<input type="radio" name="bullets" id="bullets4" value="4">
<label for="bullets4">&raquo;</label>&nbsp;&nbsp;
<input type="radio" name="bullets" id="bullets5" value="5">
<label for="bullets5">&#9002;</label>

At first I thought it was because I was using an &#number; instead of an &name;, but the first two bullet types also use an &#number;.

I then tried to use the 〉 symbol directly, instead of &#9002;, but that produces a different (wider/pixelated) symbol under Adobe AIR (WebKit):

Using &#9002;

vs.

Using 〉

How can I fix this warning? It's literally the only warning/error left to fix in a 15k line project.

Community
  • 1
  • 1
Danny Beckett
  • 20,529
  • 24
  • 107
  • 134
  • 1
    The specific character denoted by `〉`, U+232A, is canonical equivalent to U+3009, so the text indeed is not in NFC. In practical terms, both of these characters a) are supported by rather limited sets of fonts only and b) cause problem in texts in Western languages, as U+3009 is a CJK symbol and designed for use in CJK texts. – Jukka K. Korpela Oct 07 '13 at 20:08
  • @JukkaK.Korpela Do you know of any way to workaround the warning? Since I'm targeting Adobe AIR, I have complete control over the font etc. – Danny Beckett Oct 08 '13 at 07:24
  • 1
    @JukkaK.Korpela Based on what you said above, and by searching fileformat.info, I've found that U+232A is `〉`. That validates fine, but shows just like my 2nd screenshot. – Danny Beckett Oct 08 '13 at 07:30
  • 1
    I get the same result by using `〉` instead of `〉` as well. – Danny Beckett Oct 08 '13 at 07:31
  • 1
    Using `〉` (hex) instead of `〉` (decimal) displays good, but hits the same validation warning. – Danny Beckett Oct 08 '13 at 07:32
  • 2
    If you have complete control over fonts, maybe you can set the font of the character to one that has a better shape. Alternatively, just ignore the warning (which isn’t even about HTML5 conformance), or use an image (in which case it might be best to use images for all the bullet symbols). – Jukka K. Korpela Oct 08 '13 at 07:35
  • 1
    @JukkaK.Korpela I just tried using BabelPad like you suggested in the dupe; it displays fine but hits the same warning. Thanks for your suggestions, I'll try to find a font that renders `〉` better! – Danny Beckett Oct 08 '13 at 07:39
  • 1
    @JukkaK.Korpela After trying around 15+ standard fonts (like Calibri, Segoe UI, Times New Roman, etc), the only one to render `〉` correctly was Arial Unicode MS. Unfortunately, the way AIR works is that you have to bundle the font with the application and reference it in CSS with `@font-face`. Since Arial Unicode MS cannot legally be redistributed, I found this question ([Font equivalent to Arial Unicode MS](http://stackoverflow.com/q/3370512)); sadly, neither Bitstream Vera Sans nor DejaVu Sans render it correctly. So the only option I'm left with is to use an image. – Danny Beckett Oct 08 '13 at 07:55
  • 1
    Based on https://en.wikipedia.org/wiki/Open-source_Unicode_typefaces - I tried GNU Unifont. It *almost* renders correctly, but not quite! :( FreeSans renders the same as my 2nd screenshot. So an image it is! – Danny Beckett Oct 08 '13 at 08:06
  • 1
    Well that took all of 30 seconds to fix - here's the image if anyone wants it: http://i.stack.imgur.com/1miRQ.png - works perfectly! – Danny Beckett Oct 08 '13 at 08:12

0 Answers0