RE: [CSS21] [css3-text] Text decoration behavior

First, I want to note the reason "must" in the same sentence as "common case" is not working for me is that IE8's goal is full standard compliance. If there is a known corner case where either spec of implementation is not working, we have to fix one or the other.

I agree that the behavior of averaging underline position across adjacent underlined text is the best behavior in most cases. However, any rule that has "must" has to cover absolutely all cases, or provide a way to make exceptions.

For text-decoration rules:

* when applied to underline, single-line is *usually* better, but I don't see a proof that it is *always* better. We do in fact know of corner cases where being strictly compliant creates undesirable effects (Paul has shown some examples), we do have an implementation that handles it but we will have to re-introduce bugs to stay compliant.

* when applied to line-through, I don't think there is even a consensus on preferred behavior, except perhaps on *really* simple cases. See attached example - behavior differs a lot across implementations, compliant or not. Which is best? How hard is it to define it?

I believe the whole reason we are having this discussion is that there is a common problem (broken underline) which has a simple solution (use one line) which usually works. It is not easy to define what exactly constitutes the common case though so the normative rule is specified in a way that is too inclusive.

We should be able to find a way to define a rule that describes the required behavior without restricting improvements (as long as they don't affect box sizing). I would prefer not to defer that to CSS3.

--Alex

-----Original Message-----
From: fantasai [mailto:fantasai.lists@inkedblade.net]
Sent: Monday, March 10, 2008 12:22 PM
To: Alex Mogilevsky
Cc: Paul Nelson (ATC); L. David Baron; Steve Zilles; www-style@w3.org
Subject: Re: [CSS21] [css3-text] Text decoration behavior

Alex Mogilevsky wrote:
> I like the change earlier proposed by Fantasai (although it needs to say what it replaces. I am
> assuming it replaces the sentence that begins with "In determining the position of and thickness
> of text decoration lines..."
>
> Paul's earlier message suggested replacing "must" with "should" in regards of using a continuous
> line for text-decoration. "Should" still encourages the most-common-case behavior of underlining
> mixed-font text; however "must" is unusually prescriptive and limits the capabilities of UI to
> deal with corner-cases of fine typographic detail (the freedom UAs still have in vast majority of
> the rest of the spec).

"Should" makes the current behavior of varying the underline position
conformant, and I disagree with that. I also disagree with allowing the
default behavior to shift lines by vertical-alignment position. I do not
believe that this behavior should vary across UAs, and I do not believe
shifting the line position for descendants is the expected behavior for
most cases: cases such as footnote markers, chemical symbols, exponents,
variable subscripts, ordinal numbers, and other abbreviations.

As far as fine typography goes, I can see a use case for this behavior
when a descendant element (other than a superscript or subscript) is a
significantly larger or smaller than the surrounding text (e.g. twice
or half the size). However, this is not the common case. In the common
case the font size on one line does not vary by much.

I don't see any good reason to loosen this requirement in CSS2.1. If
we need a "text decoration follows text" mode to make lawyers and
graphic artists doing headline text happy, then we can add a switch
in CSS3 to make the lawyers and graphic artists doing headline text
happy. I'd rather make the chemists and mathematicians and historians
and paragraph typesetters happy first.

~fantasai

Received on Tuesday, 11 March 2008 02:26:38 UTC