Re: [csswg-drafts] [css-display] display: math might not want to do magical box construction based on the kind of element it applies to (#5866)

To summarize a bit, the use cases for allowing to override the default rendering of MathML is:

A. Use existing CSS `display-inside` values (including `layout()` function for custom layout) to override the default MathML rendering, for polyfills, language extensions, etc
B. Override the `XXX > :not(:first-child) { display: none; }` on `semantics` and `maction` to change their default behavior (i.e. switch between non-`none` or a `none` `display-inside` values). For example show an annotation child of `semantics`. Or re-implement the legacy `actiontype=toggle` value of `maction`.

And I believe the possible implementations are:

1. Always decide rendering based on the tag name.
2. Decide rendering based on the tag name for `display-inside: flow`. Otherwise, switch to the rendering defined by CSS specs.
3. Decide rendering based on the tag name when `display-inside: math` (introducing this new value). Otherwise, switch to the rendering defined by CSS specs.
4. Always decide rendering based on `display-inside`, introducing as many values or properties as needed to represent layout implied by MathML tags and attributes.

And the issue I see:

(1) does not allow to address use cases mentioned above.

(2) almost addresses these use cases, the exception being that one cannot make MathML elements have the normal behavior for `display-inside: flow`.

(3) addresses the use cases, but it leaves open how to define `display-inside: math` on non-MathML elements.

(4) addresses the use cases, but it is not clear what would be the right approach, how much work it is to define everything and implement and whether it would have more consequences we are not aware of.

I'm personnally fine with (2) or (3), with a preference for the latter. Basically I suspect web developers could be surprised that the `display-inside: flow` they are already familiar with behaves specially on MathML elements, while it's easier to document and teach them a new value.

Incidentally, I also prefer saying `display-inside: math` on non-MathML elements computes to `none` (rather than "use the mrow algorithm" as requested in https://github.com/w3c/mathml-core/issues/105) as that does not seem an important use case and I'm more confident about how to implement that. We did something similar for `display: contents` on non-HTML elements.


-- 
GitHub Notification of comment by fred-wang
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/5866#issuecomment-1193102984 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Saturday, 23 July 2022 10:32:35 UTC