Re: [csswg-drafts] [mediaqueries] Merge error handling section into evaluating section (#7595)

The CSS Working Group just discussed `[mediaqueries] Merge error handling section into evaluating section`, and agreed to the following:

* `RESOLVED: Properly define resolution of media type and top-level MQ`
* `RESOLVED: Clarify the spec text to reflect intended unknown mechanics`
* `RESOLVED: Replace "replace by not all" with "evaluates to false", open a separate issue on serialization`

<details><summary>The full IRC log of that discussion</summary>
&lt;fantasai> Topic: [mediaqueries] Merge error handling section into evaluating section<br>
&lt;fantasai> github: https://github.com/w3c/csswg-drafts/issues/7595<br>
&lt;fantasai> gsnedders1: We currently don't have interop with some types of errors around invalid media features<br>
&lt;florian> q+<br>
&lt;fantasai> gsnedders1: because essentially we don't define clearly how any of this is meant to work<br>
&lt;astearns> ack lea<br>
&lt;fantasai> gsnedders1: there were proposals to put this into Interop 2023<br>
&lt;fantasai> gsnedders1: need to know what exactly we'll be testing<br>
&lt;fantasai> gsnedders1: a few sections<br>
&lt;fantasai> gsnedders1: First, we don't define how to evaluate media type or the top-level media query at all<br>
&lt;fantasai> gsnedders1: and we just say that an unknown media type is treated as not matching<br>
&lt;fantasai> gsnedders1: whereas unknown media feature [logic]<br>
&lt;fantasai> gsnedders1: Suggest to define how to evaluate MQ with handwavy definition of media types matching if appropriate<br>
&lt;fantasai> TabAtkins: Agree<br>
&lt;astearns> ack florian<br>
&lt;fantasai> florian: I agree, media type is not properly defined, but that's not hard. Can be more specific than mentioned<br>
&lt;fantasai> florian: since most deprecated by now<br>
&lt;fantasai> florian: so only two cases where we differ from screen<br>
&lt;fantasai> florian: for top-level MQ, what it ought to be is fairly obvious but we should write it down<br>
&lt;fantasai> gsnedders1: Proposed resolution is to define how to evaluate media query and media type<br>
&lt;fantasai> gsnedders1: in somewhat obvious way<br>
&lt;fantasai> astearns: any objections?<br>
&lt;fantasai> RESOLVED: Properly define resolution of media type and top-level MQ<br>
&lt;fantasai> gsnedders1: Next, unknown media name or ???<br>
&lt;fantasai> gsnedders1: results in value of uknown<br>
&lt;fantasai> gsnedders1: but we don't say what exactly is given unknown<br>
&lt;fantasai> gsnedders1: an MF name or MF value doesn't have a value<br>
&lt;fantasai> gsnedders1: Currently FF and Chrome differ<br>
&lt;fantasai> gsnedders1: FF makes the entire MQ uknown if any media feature name or value is unknown<br>
&lt;fantasai> gsnedders1: whereas Chrome only makes that specific one unknown<br>
&lt;fantasai> florian: Chrome is right, the whole point of this logic is doing this<br>
&lt;fantasai> TabAtkins: [agrees]<br>
&lt;fantasai> gsnedders1: I can justify both behaviors from current spec text<br>
&lt;fantasai> florian: We'll clarify, the intention is 100% clear to the spec editors, so we just need to fix the tet<br>
&lt;fantasai> RESOLVED: Clarify the spec text to reflect intended unknown mechanics<br>
&lt;fantasai> gsnedders1: Final bit is, MQ whose value is unknown must be replaced with "not all"<br>
&lt;fantasai> gsnedders1: but not clear what it means to replace an MQ<br>
&lt;fantasai> gsnedders1: maybe need to define MQ serialization?<br>
&lt;fantasai> TabAtkins: I think that's right, but...<br>
&lt;fantasai> TabAtkins: I think it's a serialization issue<br>
&lt;fantasai> gsnedders1: I think we need to say that unknown MQ evaluates to false, and serializes to "not all"<br>
&lt;fantasai> florian: makes sense to me<br>
&lt;fantasai> emilio: We don't have this thing to support ... with generalized enclosed<br>
&lt;fantasai> emilio: is that a compat requirement?<br>
&lt;fantasai> florian: part where unknown MQ evaluates to false, that is absolutely desired intent<br>
&lt;fantasai> florian: whether accidentally replaced with "not all" with no effect on serialization or whether was intended to talk about serialization, then I don't know<br>
&lt;fantasai> gsnedders1: I think it goes back to CSS2<br>
&lt;TabAtkins> MQ has a bunch of legacy weirdness that I didn't replace<br>
&lt;fantasai> gsnedders1: It could literally just be copy-pasted from earlier level with no thinking<br>
&lt;fantasai> emilio: WE don't implement this update to the spec, but if we did we'd probably want to be consistent with @supports<br>
&lt;fantasai> emilio: and @supports when you throw something random at it, you serialize that<br>
&lt;fantasai> emilio: rather than a false statement<br>
&lt;fantasai> florian: should we say, gets evaluated as false? or does that lose something important?<br>
&lt;fantasai> emilio: I think so, but not sure how that maps. I think spec said this had to be some value with 3-way state...<br>
&lt;fantasai> florian: when you propagate unknown ...<br>
&lt;fantasai> emilio: That was not the desired behavior, and we changed it. Unknown just evaluates as false<br>
&lt;fantasai> emilio: so probably we want to be consistent, and unknown evaluates as false?<br>
&lt;fantasai> TabAtkins: we very specifically want @supports unknown to be false, because if you can't parse it you definitely don't support it<br>
&lt;fantasai> TabAtkins: but for MQ, whether you are that type of media or not, you don't know if you can't parse the MQ<br>
&lt;fremy> +1 to what TabAtkins just said<br>
&lt;fantasai> florian: I think that the "gets replaced by not all" is an ancient and imprecise way of saying evaluate as false, and we should replace this and not talk about serialization<br>
&lt;fantasai> gsnedders1: with prior resolution, very few if anything will result in the whole MQ being unknown<br>
&lt;fantasai> TabAtkins: not necessarily true, e.g. combine with and and you'll get unknown propagate up<br>
&lt;fantasai> gsnedders1: yes, nevermind<br>
&lt;fantasai> astearns: Should we resolve, or need more time?<br>
&lt;fantasai> emilio: Fine as long as we're all on the same page<br>
&lt;fantasai> florian: Instead of "replace by not all" say "evalutates to false"<br>
&lt;fantasai> gsnedders1: define serialization of unknown MQ to be "not all", is that still the intention?<br>
&lt;fantasai> florian: Let's open a separate issue for serialization, since might have compat concerns<br>
&lt;fantasai> florian: Want to look into that offline<br>
&lt;fantasai> RESOLVED: Replace "replace by not all" with "evaluates to false", open a separate issue on serialization<br>
</details>


-- 
GitHub Notification of comment by css-meeting-bot
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/7595#issuecomment-1284268421 using your GitHub account


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

Received on Wednesday, 19 October 2022 16:20:30 UTC