[css-fonts] definition of synthetic oblique within the 'font-style' property definition

There's currently one remaining issue outstanding against the CSS3 Fonts spec, Koji Ishii's issue related to how italics are synthesized within vertical text runs containing a mixture of orientations.

Koji's original post:
http://lists.w3.org/Archives/Public/www-style/2013Feb/0121.html

Koji's blog post (Japanese):
http://koji.ec/archives/7

Discussion at Tuscon F2F:
http://lists.w3.org/Archives/Public/www-style/2013Feb/0391.html

I think a lot of the original discussion focused on the meaning of italics in various scripts.  However, I think we need to keep in mind here that the topic is really what the definition of the CSS 'font-style' property is and not so much whether other scripts have a notion of "italics".

In terms of the 'font-style' property, it's a property used for font face selection and there are specific matching rules for choosing those faces and what to do when an italic or oblique face doesn't exist.  Browsers have historically applied a right slant to simulate an oblique face when either 'italic' or 'oblique' was specified for 'font-style'.

Koji pointed out that IE10 renders vertical text with mixed orientations by obliquing the entire line the same way rather than treating the glyphs as coming from synthesized oblique faces (see blog post illustration).  Conflating line obliquing and italics may seem natural in a context where there are not fonts labeled "italic" but I don't think it's a good general solution; better to have a separate property that addresses this.

I contacted the folks that work on design products for the Japanese market at Adobe and they agreed, obliquing operations should be separate from italics and this is how they are implemented in InDesign.

I've changed the definition of 'font-style' to give a more precise definition of synthetic oblique faces:

Old text:

> If no italic or oblique faces is available, an oblique face can by
> synthesized by rendering the normal face with a sloping
> transformation applied. 

New text:

> If no italic or oblique face is available, oblique faces can by
> synthesized by rendering non-obliqued faces with a right sloping
> transformation applied. When synthesizing these faces, the
> transformation should apply to all glyphs in the same way and not
> vary based on codepoint or due to horizontal or vertical line
> orientation.

This matches current implementations for horizontal text.  For vertical text, this is not the behavior of IE10 but it is what Webkit does.

We could work on adding new properties to the CSS3 Fonts spec but I don't think that's a great idea, there isn't a huge need for this.  We should figure out at some point how to support this functionality cleanly.

Regards,

John

Received on Tuesday, 7 May 2013 06:36:18 UTC