Re: [svgwg] Character counting in text 'x', 'y', 'dx', 'dy', and 'rotate' attributes. (#537)

Thinking more about this, i came across another potential issue. Complex scripts use things like RLI (specifies base direction for bidi text), ZWNJ (stops cursive joining in scripts like Arabic & breaks conjuncts in scripts like Devanagari), FVS (applies a specific variant shape to a Mongolian letter).  These are all invisible characters in Unicode, and i believe that none of them are combined with other characters when grapheme cluster segmentation takes place.  

If we are creating offsets by automatically counting grapheme clusters or code points, the result would presumably be a gap where one of these characters appears.  Perhaps one way to deal with that is to establish an exclusion list for this type of character, however i don't know whether or not that would come with it's own problems.

Whatever is done wrt spacial placement of glyphs, the effects of those characters need to be applied to the appropriate adjacent character.

Here's [another test](https://w3c.github.io/i18n-tests/quick-tests/svg-counting/svg-counting-003.html) that looks at what browsers do with the invisible characters above. 

Firefox leaves a gap for ZWNJ and FVS, but not for LRE/PDF, but does apply the expected effects, except for bidi reordering (the AB is in the wrong place).
Chrome leaves gaps for all, and doesn't apply expected effects for ZWNJ and FVS, but does for bidi.
Edge leaves a gap for ZWNJ only, and applies expected effects for ZWNJ and FVS, but not bidi.

-- 
GitHub Notification of comment by r12a
Please view or discuss this issue at https://github.com/w3c/svgwg/issues/537#issuecomment-442806425 using your GitHub account

Received on Thursday, 29 November 2018 11:52:05 UTC