If you think a bug might affect users in the 57 release, please set the correct tracking and status flags for Release Management.

combining (semi-)voiced sound marks (U+3099, U+309A) are rendered incorrectly




Firefox for Android
3 years ago
a year ago


(Reporter: Hiroshi ABE, Unassigned)


32 Branch

Firefox Tracking Flags

(Not tracked)



(3 attachments)



3 years ago
User Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:34.0) Gecko/20100101 Firefox/34.0 (Beta/Release)
Build ID: 20140815030202

Steps to reproduce:

Open a page that contains U+3099 (Combining Katakana-Hiragana Voiced Sound Mark; looks like dots on top of a letter), such as 'じし' (U+3057 U+3099 U+3057).

The same problem reproduces on U+309A (Combining Katakana-Hiragana Semi-Voiced Sound Mark; looks like a circle on top of a letter).

Actual results:

Voiced sound mark is rendered on the letter after U+3099, like 'しじ' (U+3057 U+3058).

Expected results:

Voiced sound mark should be rendered on the letter before U+3099, like 'じし' (U+3058 U+3057).


3 years ago
OS: Windows 7 → Android
Hardware: x86 → ARM
This is most likely the same issue as bug 1024349 on FirefoxOS: the combining sound marks are not supported by the font being used, so they fall back to a different font (maybe Droid Sans Fallback?), but this results in a font-run boundary between the base character and the combining mark, and mark positioning doesn't work well across run boundaries as the separate font runs are shaped completely independently.

The "right" fix would be to ensure that the Japanese fonts being used actually support these characters, but we can't easily do that for Android devices as we don't control the fonts that are being shipped.
This is going to depend on the phone's fonts that are part of the OS. Can the stock browser or Chrome on Android render this glyph correctly? 

Quote from bug 992100 comment 6 on how to retrieve the fonts from your phone.

If you have a computer with the android sdk tools installed, you should be able to use adb for this. With your device connected, you can do something like

  mkdir fonts-from-android
  cd fonts-from-android
  adb pull /system/fonts/

to "pull" everything from the device's /system/fonts/ into a directory on your computer; then zip that into an archive and attach to this bug. If Bugzilla complains they are too big to attach we will work out a delivery method for the file

(If you first need to install the android sdk, details will depend on your computer platform, but there are plenty of instructions available online.)
Flags: needinfo?(nujinuji)

Comment 3

3 years ago
Created attachment 8474263 [details]

fonts on my phone

Comment 4

3 years ago
Created attachment 8474264 [details]
Android 4.0.3 Browser.png

the Android browser result

Comment 5

3 years ago
Created attachment 8474265 [details]
Firefox Mobile 32 beta.png

Firefox result

Comment 6

3 years ago
Yes, the Android (4.0.3) browser renders them correctly.
I attached the fonts on my phone, and screenshots on both of browsers.

I noticed that Firefox renders the combining voiced mark, not only on an unexpected letter, positioned slightly upper and righter than the combined one (U+3058) and the Android browser does.

So I guess that the Android browser combines U+3057 U+3099 into U+3058 before rendering them as in UAX#15 (for the case where combining marks are not supported).
Flags: needinfo?(nujinuji)


3 years ago
Ever confirmed: true
You need to log in before you can comment on or make changes to this bug.