The TAG is aware of, and a supporter of, the Houdini efforts and wants to emphasise that the feedback here is meant to help clarify that work and is not meant as critique of the Regions effort in particular.
Instead, we'd like to emphasize that the Houdini effort should have explaining how Regions works as a goal. That is to say, a strong test of Houdini's efforts should be the ability to polyfill Regions using JS/CSSOM + Houdini deliverables in an efficient way. Current polyfills pay an enormous runtime tax. Houdini should make it possible to implement Regions with high fidelity and low overhead.
At its present state the spec is not polyfillable because of abovementioned reasons. Existing polyfill (a) covers just simpliest cases; (b) does nasty things effectively changing markup and its semantics.
We understand that CSS features are not polyfillable in general, and that CSS Regions require exposing aspects of platform like font properties and box tree rendering. We don't ask editors to solve these tasks on their own, but to join Houdini effort to provide suggestions what interfaces should be defined to develop a polyfill to CSS Regions.
As the Houdini efforts become more real, we'd like to see the maintainers of the Regions spec and the Houdini engineers work towards a consensus about how each Regions feature can be efficiently implemented in terms of lower-level primitives. In fact, this is an area that we'd like to follow up with both groups about.
Areas that seem necessary to extend the system include:
- Sytactic extension of CSS; custom properties and efficient notification of CSS changes seem a must
- The ability to know a pass of layout has completed and react to overflow by generating boxes and requesting more layout is a must
- Outlining the data structures for the overflowed ranges (for breaking purposes)
- An ability to do efficient line breaking
One of the most important questions about a spec is ‘what use cases does it cover’. Unfortunately, CSS Regions spec lacks answer to this question. As we could deduce from older articles and examples the intended usage of CSS Regions is a way far broader than ‘examples’ section of the spec states. We would appreciate some formal or informal description of actual use cases.