- From: Peter Moulder <pjrm@mail.internode.on.net>
- Date: Thu, 17 Sep 2015 22:55:03 +1000
- To: www-style@w3.org
[Possibly the very recent change to the Editors' Page was intended to clarify the answer to the first part of this message, by moving the two most relevant sentences into the same paragraph, with the intent that it be understood that the first sentence actually means "other than in the circumstance described in the rest of this paragraph". However, since the edit only moves text rather than changing wording, it's not clear that that was the intent.] There are some things that aren't clear about how these parts of section 3.3 (Page Progression) combine: # In documents with a left-to-right page progression # the first page of the document is a right page, and vice versa. # The UA must suppress the first (empty) page(s) # [if the author forces printing to begin on a left or right page]. In the forced case, in what sense does this suppressed first page of the document still exist? Does it still increment the implicit page counter, such that the first printed page (as matched by :first) is page 2? (The spec as written says yes, in that any "first page of the document" is by definition a page in the document, and "every page of the document" increments an implicit page counter.) Other than possibly incrementing the page counter, does this suppressed page have any other presence in a PDF or postscript document that might be used for printing; what consequences, if any, are there of this page being in the document? If UAs are to prevent an initial blank page, then what is the expected usual practice for printing this document in a way that binding works? How practical is this, how common is it that software provides for this? (I've looked at only a couple of pieces of software I had on hand, and didn't find provision for it in the duplexing options of the printer setup dialog box.) It also isn't clear in the existing text what the condition is in general for when the first printed page is a left or right page. The relevant part of the spec is: # To explicitly force a document to begin printing on a left or right page, # authors can specify a 'break-before' value # that that propagates a page break to the root. [[!CSS3-BREAK]] (Presumably "that that" is a typo for "that", rather than meaning "which this".) css-break doesn't really define the phrase "propagating a page break to the root", and the closest it gets seems like it isn't the definition one would want: - css-break suggests that setting break-before on :root itself doesn't count (because it isn't isn't a child and has no container, so it isn't described as propagating). - it isn't clear what counts as a page break being propagated, i.e. what values of page-break-before force the first page to be verso. By a literal reading, even the value 'recto' might count. - The example that break-before:always is sufficient is surprising to me, as print-media stylesheets have traditionally (e.g. the CSS 2.1 recommended UA stylesheet for HTML) had h1 { page-break-before: always } which suggests that every document starting with an h1 (not inside an element that starts a new fragmentation context) would have this swapped behaviour. This is surprising, because I think users would very rarely want this behaviour, so the language should not make it the behaviour for standard document practice. (Similar comments might apply for the common practice of div.chapter { page-break-before: recto }.) Here are the answers to the above questions that I chose for implementation: - That the suppressed page has no presence at all as a page in the document, i.e. that the first page of the document is the first printed page, and it's numbered 1 when the page counter is left to be updated implicitly. - Omit the blank page like the spec says; duplexing is the user's responsibility. (However, my preliminary findings above as to practicality of printing the resulting document make me question this behaviour.) - That the only values of 'break-before' that cause the first page to be verso are 'verso' and whichever of 'left' and 'right' corresponds to 'verso' per the document's page progression direction ('left' for rtl). (In other words, "page-break-before:always/left/right/..." means "make sure that this element is always at the top of a [left/right/...] page", comparable to the usual combining of multiple break-{before,after} values.) pjrm.
Received on Thursday, 17 September 2015 12:55:35 UTC