Это проблема аппаратного ускорения на Mac с графическим процессором ATI.
Мы выполняем тот же код, рисуя на холсте: у нас была проблема на Mac, оснащенном графической картой ATI; вместо этого на MacMini (оснащенном графическим процессором Intel) рисунок был идеальным.
Если вы установите флажок «Отключить ускоренное рисование на холсте» в разделе «Отладка -> Флажки рисования / компоновки» в меню Safari, вы больше не заметите ошибок прозрачности текста.
Safari 6.0 (в Mac OS X 10.7.4) показывает ту же проблему прозрачности.
- ОБНОВЛЕНИЕ -
После многих исследований можно сказать, что это не проблема с графическим процессором, а проблема Apple: применение «Сглаживания шрифтов» на ЖК-мониторах (настройка AppleFontSmoothing).
В наших наблюдениях мы тестируем на двух машинах:
1 - Mac Mini с ЖК-дисплеем Philips
2 - iMac (с собственным ЖК-монитором)
Первая машина не показала проблему, потому что системный алгоритм не распознал монитор как ЖК-монитор.
Но если заставить AppleFontSmoothing с помощью команды defaults -currentHost write -g AppleFontSmoothing -int 2
, проблема возникнет даже на Mac Mini.
Если вы не хотите, чтобы ваше приложение больше показывало проблему (управление аппаратным ускорением canvas), вы можете отключить свойство webkitFontSmoothing для объекта canvas:
var canvas = document.getElementById('my-canvas');
canvas.style.webkitFontSmoothing = "antialiased"