- From: Håkon Wium Lie <howcome@opera.com>
- Date: Tue, 7 Aug 2007 11:26:06 +0200
- To: Peter Moulder <Peter.Moulder@infotech.monash.edu.au>
- Cc: www-style@w3.org
Also sprach Peter Moulder:
> "may also used" should presumably be "may also be used".
Yes
> Also, I don't
> understand the next sentence, i.e. I don't know what it means by "is
> only concerned with" -- or "may [be] used with" for that matter: does
> "may be used with" mean that conformant UA's should support the
> functionality with other media, or just that hyphenation etc. is often
> used in other media but this specification doesn't provide for doing so
> from within CSS ?
The text intended to say that only the 'print' media type was
affected, conformance-wise. I've reformulated this in the "conformace"
section.
> §6.2, Example XXII: Not sure what "oldest" means.
In the tree structure of elements, the root element is the oldest. A
parent element is older than its children, and sibling elements also
have a relative age.
> The text says "In this example, ... due to the 'right' keyword", but the
> example has only a 'left' keyword.
Good catch. Fixed.
> Don't know what "is considered to come before" means. Change to "is given
> precedence over" if that is the intended meaning.
The example that follows the text illustrates what it means; when you
have both footnotes and bottom-floating content, the footnotes will
appear below the floating element. I've changed the text to:
The position of the footnote area is give priority over floating content.
Is that better?
> "by the footnote elements elements" should probably be "by the footnote elements".
Indeed
> Consider re-ordering the list of "properties [that] apply to the footnote
> area": swap 'border' and 'padding', so that content, padding, border, margin
> form a logical sequence.
Done
> Less compellingly, consider moving border-length to
> after border, and (less importantly again) background properties to after (say)
> margin.
Done
> §6.3 border-length:
>
> The first paragraph of text mentions 'border-width', which doesn't occur
> anywhere else in the spec. Should probably be 'border-length'.
Right
> The Percentages field refers to the length of horizontal border, whereas the
> main text says that it controls "borders in the inline direction of the
> footnote area". If this is deliberate, then please confirm so by adding '(even
> if the inline direction of the footnote area is vertical)' to the Percentages
> field text. (Otherwise, correct it of course, e.g. adding '(or vertical
> border if the inline direction of the footnote area is vertical)'.)
>
> Similarly, that paragraph of text mentions "horizontal borders", which might
> also be a mistake.
>
> How is "the inline direction of the text" determined in the case of bidi or
> when there are multiple paragraphs where some are ltr and others rtl, or when
> the direction property conflicts with the order of the script used in the text?
Yes, it's troublesome. Perhaps it's better to use explicit names. For example:
border-length: 30%;
border-align: left
This seems quite useful, also when making the commonly used small
horizontal bars:
Hello, world!!
---
There you are.
Which could be achived with:
border-length: 30%;
border-align: center;
The vertical issue and the the possible combinatorial explosion of
properties requires some thinking, though. Possibly, it can be avoided
by saying that 'border-length' applies to all sides and to use
'start', 'center', 'end' which are meaningful both in vertical and
horizontal contexts.
> §6.8 'Laying out footnotes', first item: consider changing "page" to "page or
> column".
I disagree. I think it's acceptable to put all notes in the first
column even when footnote calls appear in the second column.
> Second item, regarding the red text, some reasons in support of document
> order are: (i) assists location of the footnote in the common case that
> the footnote markers are counters, at least in absence of a counter-reset
> call. Even in the case of a counter-reset call (e.g. the previous page
> didn't have room for its last footnote), I think the footnotes belong in
> footnote-counter-ignoring-resets order, which [it is claimed in the red
> text, I haven't checked] is the same as document order. Also, humans
> (let alone computer programs) aren't always sure what "visual order"
> actually means in the case that one call is slightly below but to the
> left of another call (in an all-ltr page), or when mixing different
> inline-progression directions, or when using columns.
Document order it is; I've removed the issue.
> §9.1 'Hyphenate properties', hyphens property, none: What does "word" mean in
> this context ? E.g. is 'break-point' one word or two?
CSS has a long-standing tradition of using 'word', but not defining
it. It's simply too hard to define for all scripts and languages.
> What about '/' or zero-width space?
Unclear. UAs treat them differently today.
Prince has a property to influence this:
http://www.princexml.com/doc/6.0/properties/prince-linebreak-magic/
> What sort of "characters inside the word" are we talking
> about other than ­ ?
There are a few other candidates:
The hyphen character ‐
The hyphenation point ‧
> hyphenate-resource property: Value says 'none | <uri>', but the text talks
> about a comma-separated list. Is 'none' a valid item in the list? I'd guess
> that this value should be written as 'none | [<uri> , ]* <uri>'.
Yes
> hyphenate-lines property: does a "hyphenated line" include the case of explicit
> hyphens in the text, such as if 'super-scripted' gets broken as
> 'super-//scripted' ? What about other lines ending with a character of the
> unicode dash category? What about the case when, due to bidi, the (logical)
> end of the line lies at neither (visual) end of the line? This is a matter of
> whether we're trying to avoid "pig's bristles" (the appearance of many dashes
> at an end of a line) or whether we're trying to avoid too many successive bad
> breaks.
I believe effect we're after is visual, rather than logical. That is,
we're trying to avoid the pig's bristles. However, I think the spec
should remain silent on this.
> hyphenate-character property: Would be good to give (a reference to) more
> guidance to user-agent developers as to how to choose an appropriate value.
> U+058A's name is 'Armenian hyphen', but even if it's used just like a European
> hyphen, that still leaves open the question of exactly when to use it (e.g. if
> only one of the surrounding characters is in the Armenian script, or if some
> non-alphabetic characters are involved, and whether one is required to skip
> over combining marks).
>
> Is there a more compelling use-case for the example, such as explicitly
> specifying the hyphen character in cases of doubt, like an English document
> containing an Armenian place name ?
I not an expert on this. Anyone?
> §10.1 'super-decimal': "replaces the used of" is wrong.
Indeed
> §11 'Character substitution': I don't think this belongs in CSS.
It's borderline. But, very convenient when you need it. Just like
'text-transform' is. Here's a document that uses it:
http://www.princexml.com/samples/
(the first document in the list)
> The example
> given is wrong for the case that the ASCII apostrophe character is being used
> as an opening single quote or as a prime/foot/minute sign or as an ASCII
> apostrophe character for description of a computer language or as one half of a
> double-quote or double-prime (inch/second) sign.
Yes. However, if you have good markup, you can exclude these case.
> Example XLI will sometimes
> give wrong results because the Soviet Union had the same boundaries as current
> Russia, and in any case the change will be wrong in the case of sentences
> specifically talking about naming or that describe a historical context; and
> blind textual substitution isn't enough to adapt more generally to the changed
> political realities.
Yes. I should probably use a less charged example.
> In absence of more compelling examples, this sort of
> substitution belongs in editors, not in renderers.
The problem is that the person who formats a document doesn't always
have control of the editor.
> There are lots of other
> yet-unimplemented CSS properties that are more valuable to implement than this
> one.
>
> (If you must keep this facility, then note that it's under-specified for the
> case when "from" strings overlap each other, or when the "from" string is
> empty, or when a substitution creates an occurrence of the "from"
> string. Each of these should be noted, even if only to say explicitly
> that its behaviour is unspecified.)
Noted
> §13 'Page floats': The text and examples are inconsistent as to whether 'next'
> counts as a vertical keyword or not: rule 4 says that at least one horizontal
> or vertical keyword must appear, but the examples say that 'next page' is
> valid, suggesting that 'next' counts as vertical; yet we're told that "only one
> vertical keyword ('top', 'bottom') can appear in a value", and yet 'top next
> page' is a valid value.
>
> I suggest changing "at lease one horizontal or vertical keyword must appear" to
> add "or the keyword 'next'".
Good suggestion.
> The rule that keywords can appear in any order implies that the misleading/
> confusing string 'page bottom next left' is a valid value. Restricting the
> order both makes parsing easier and forbids that confusing value and simplifies
> the list of validity rules all at the same time:
>
> [ top | bottom ]? [ left | right | inside | outside ]? next? page
>
> with the only rule remaining to be stated in text being that
>
> 'page' by itself is not a valid value (i.e. at least one of top, bottom,
> left, right, inside, outside or next must also be specified).
>
> (Adopting this change would also involve changing the examples, btw.)
I think it's a good proposal.
> (Note that 'float: top left page' and 'float: left top page' both receive the
> same error handling by conformant CSS2.1 UAs, btw, namely to ignore that
> declaration.)
>
> Consider merging with §15 given the interaction with unless-room.
There are many interactions. I'll leave it where it is for now.
> §14 'Advanced multi-column layout': Consider changing "separated CSS3" to
> "separate CSS3".
Right
> §15 'Conditional content':
>
> "Two new value" should be "... values". Also, I don't think I'd describe
> 'unless-room' as a value but rather as a keyword for use within the value of
> the float property.
Yes
> It isn't clear whether 'hide' can be used in conjunction with 'page' in the
> same declaration ('left page hide unless-room'); more generally, neither the
> hide description nor the unless-room description specify what other keywords
> are allowed in the same declaration.
I've noted it as an issue.
> §18 'CMYK colors': The appearance of cmyk(0.5, 0.1, 0.0, 0.2) will differ from
> one printer to another. Printers often have a different number of inks than 4.
> Some of the SVG 1.2 working drafts have tried to overcome these issues (search
> for icc-color, device-color, deviceColor). Consider removing §18, perhaps
> adding a reference to css3-color and/or SVGPrint.
I've added a note that we need a color space profile for cmyk and
links to the specs you mention. They do not include the 'cmyk()'
syntax, though, which I think is valuable.
> 'Other references': Consider linking to the most current version in each case.
Yes
Thanks for a good review!
-h&kon
Håkon Wium Lie CTO °þe®ª
howcome@opera.com http://people.opera.com/howcome
Received on Tuesday, 7 August 2007 09:26:32 UTC