Open jakub-simek opened 5 years ago
Indeed, there are differences. Another one is that the content model for back
refers to model.divBottomPart
, while front
has model.divBottom
.
But there are other unusual things there. For example, while both front
(and back
, too) can contain closer
, it cannot have an opener
, which is at least surprising (opener
is in model.divTopPart
which is not referred to by front
or back
).
I think, we should re-think both elements and their content model (and maybe also try to rethink and rephrase what is supposed to go in there as in my experience the usage differs widely).
The remark in the guidelines dates back at least to P3 (which read: "The content model of back matter is identical to that of front matter, reflecting the facts of cultural history."). In P3, and presumably in P4, the content models were indeed identical (allowing: argument byline div div1 docAuthor docDate epigraph epilogue head opener performance prologue salute set signed titlePage). And it will surprise no one that in our (TCP) customization, body, back, and front all have identical content models, devoted as we are to simplicity and symmetry.
It does seem like the formal specification has diverged from GL prose. I wonder if it's by design or just overlooking the spirit behind front and back. Likely the latter but calling anyone who might remember relevant discussions to say otherwise @jamescummings @emylonas @sydb @lb42 @hcayless...
I think it is just been done unthinkingly and we should rationalise the content models to be identical. Openers and closers could appear at either end depending on cultural convention. Etc.
The trouble comes partly because of the use of model classes (such as model.divBottomPart) which can't appear both at the start and the end of a div without introducing an ambiguity. I can confirm it wasn't done unthinkingly: it's just very hard to implement (without, for example, disallowing things people claim they want, such as empty <div>
s). Good luck trying...
To summarize then: the prose describes intended behaviour (content models of front and back should be the same), implementation gets more tricky.
Main differences in the content model are
Shall we then start with adding model.listLike to front and then review model.divBottom and model.divBottomPart?
Council VF2F 2020-10-24: Council greenlights this to find a way to implement making <front>
and <back>
identical. Submit a pull request with a way to do this. There may be a few options for implementation, so we're adding a Needs discussion label and Go.
Hi,
The specifications of the elements
<front>
and<back>
both state:The respective content models, however, are not identical, one difference being that
model.listLike
is allowed in<back>
but not in<front>
.So either the content models should be aligned or the note in the element specifications should be changed, right?
Best wishes, Jakub