Skip to content

[mediaqueries-5] duplication of forced-colors: active and prefers-contrast: forced #5433

Closed

Description

@cookiecrook

[mediaqueries-5] duplication of forced-colors: active and prefers-contrast: forced

Breaking this discussion out of the large mega thread in #2943.

I believe these statements are true.

  1. AFAICT, forced-colors: active and prefers-contrast: forced are exact duplications of each other.
  2. I am only aware of one implementation of forced colors: on Windows.
  3. forced-colors is already implemented in Edge (and possibly in the Chrome HC extension.)

Opinions:

  • I'm not sure why two properties are needed. I think I'd heard both that the forced value is intended as a replacement for the forced-colors media feature, and I've also heard that these are intended to be complementary and co-exist. Which is it, and why?
  • Since there is only one implementation (Windows), I worry that shoehorning a single forced value into prefers-constrast is unnecessarily limiting. Another platform (iOS, Mac, ChromeOS, Android, Linux) may support a different forced mode in the future, and forced-colors would be easier to extend.

Editorial: prefers-contrast: forced cross-link to forced-colors: active an confirms the duplication. If both are kept, the reciprocal link and explanatory prose should be added, too.

Activity

  1. cookiecrook commented on Aug 14, 2020

    @cookiecrook
    ContributorAuthor

    Even though I'm a WG member, I'm not able to add the requested labels. Is that intentionally limited to full editors?

  2. astearns commented on Aug 14, 2020

    @astearns
    Member

    Nope, it's just a manual step for us to add people to the right team. You should be good now.

  3. frivoal commented on Aug 16, 2020

    @frivoal
    Collaborator

    Whether or not its the right conclusion is a separate question, but the current idea is:

    They are indeed the exact same thing. We wish we had though of defining it as prefers-contrast: forced first, but we didn't, so MS shipped force-color: active already. We thought we still liked prefers-contrast: forced better, so we defined that, but since forced-colors: active shipped, we're keeping it as well for compat reasons. The fact that one is the desired syntax, and the other is the legacy alias isn't currently clear in the spec, but an editorial cleanup should make that more obvious.

    So, with that in mind, I think we can take 3 stances:

    1. I think all is all is fine, just do the editorial clean up to make it clear why there's two.
    2. I agree that prefers-contrast: forced is the better design, but the benefit isn't strong enough to justify a "good syntax" and "legacy syntax", so we should revert the decision taken in [css-color-adjust-1][mediaqueries-5] Fold forced-colors and prefers-contrast? #3856 to add forced to prefers contrast.
    3. I disagree that prefers-contrast: forced is the better design. Keeping forced colors separate from contrast preferences is desirable, regardless of compat. On that basis, we should revert the decision taken in [css-color-adjust-1][mediaqueries-5] Fold forced-colors and prefers-contrast? #3856 to add forced to prefers contrast.

    My stance is (1), and as the spec's Editor, I'll do the editorial clean-up to at least make it clear what the current situation is.

    I believe your stance is closer to (3). I'd suggest holding off just a bit to see if the clean-up I'm about to do makes things better in your opinion. If it doesn't, it's probably worth re-reading #3856 (I'd say from the top up to and including the teleconf minutes of June 11, after that it goes into a number of tangeants, most of which are answered by #2943 or by the editorial clean-up I'm about to make), and responding to the points that were made in favor of the resolution that was taken then.

  4. cookiecrook commented on Aug 17, 2020

    @cookiecrook
    ContributorAuthor

    My stance is partially 2 (added 2b below) and fully 3.

    2b. Regardless of which syntax is better, there is only one platform that supports this feature and the current syntax is sufficient to cover that platform. Therefore, the benefit isn't strong enough to justify a syntax duplication. If future platform features require additional syntax changes, it would be better to wait until we know what those are.

    1. I disagree that prefers-contrast: forced is the better design. Keeping forced colors separate from contrast preferences is desirable, regardless of compat. On that basis, we should revert the decision taken in [css-color-adjust-1][mediaqueries-5] Fold forced-colors and prefers-contrast? #3856 to add forced to prefers contrast.

    Yes to this, too.

  5. added this to the TPAC-2020-08-19 milestone on Oct 16, 2020
  6. MReschenberg commented on Oct 19, 2020

    @MReschenberg

    Some additional context from Mozilla: we implementforced-colors and prefers-contrast too, though they're behind prefs :)

    The "forced" parts of our implementations respond to both Windows HCM and Firefox HCM (about:preferences > colors, the dialog allows users to pick customized colors for text, background, visited/unvisited links). We've been doing some work with folks at Google to make sure G-suite sites render appropriately in Firefox when HCM (windows, ours) is enabled. Google is using these preferences to make adjustments (mostly prefers-contrast: forced, if I remember correctly), but our users won't benefit from them until we can unpref. I don't know that I have enough context to take a stance one way or another, but just wanted to give some more usage context :)

  7. cookiecrook commented on Oct 19, 2020

    @cookiecrook
    ContributorAuthor

    @MReschenberg wrote:

    The "forced" parts of our implementations respond to both Windows HCM and Firefox HCM (about:preferences > colors, the dialog allows users to pick customized colors for text, background, visited/unvisited links).

    To clarify, are you saying the Firefox HCM mode on non-Windows platforms (Mac, Linux) will also match the media features? Good to know. Thanks.

    our users won't benefit from them until we can unpref.

    By "unpref" do you mean change Firefox to match the Windows system setting? I thought that was already implemented based on your comment that "The 'forced' parts of our implementations respond to both Windows HCM…"

  8. 40 remaining items

  9. css-meeting-bot commented on Feb 24, 2021

    @css-meeting-bot
    Member

    The CSS Working Group just discussed [mediaqueries-5] duplication of `forced-colors: active` and `prefers-contrast: forced` , and agreed to the following:

    • RESOLVED: Removed the forced value from prefers-contrast MQ
    The full IRC log of that discussion <dael> Topic: [mediaqueries-5] duplication of `forced-colors: active` and `prefers-contrast: forced`
    <dael> Github: https://github.com//issues/5433
    <dael> alisonmaher: For a bit of context chromium has impl of prefers-contrast behind flag. Pretty sure FF does as well
    <alisonmaher> In favor of 'prefers-contrast: forced'- https://github.com//issues/5433#issuecomment-716954048
    <alisonmaher> Against 'prefers-contrast: forced'- https://github.com//issues/5433#issuecomment-716954108
    <dael> alisonmaher: p-c:f is duplication of forced-colors MQ. Previously agreed to keep for compat. Do we want to keep p-c:f or not? Strong arguments on both. jcraig summarized them well ^
    <dael> alisonmaher: In favor is it shortens the MQ needed to match any combo of users and reduces likelyhoold that authors overlook users with a different color sceme than less or more
    <dael> alisonmaher: against it doesn't add any additional benefit and removing provides more clarity to authors on which to use and how it works
    <jcraig> q+
    <florian> q+
    <dael> alisonmaher: I tend toward remove b/c simplifies and matches more to prefers color scheme approach which jsut matches to dark or light.
    <dael> alisonmaher: Perhaps a middle ground where we remove but still capture the users, but not sure what that would look like.
    <jcraig> q?
    <dael> jcraig: Thanks alisonmaher for the summary
    <astearns> ack jcraig
    <TabAtkins> q+
    <dael> jcraig: One piece not mentioned is there's an assumption that all forced-color users reglardless of match less or more want reduced complexity. I don't believe it's true. Don't have evidence, but don't think evidence exists. My hunch is these people customize and don't have a preference on complexity. Seems coorilation vs causation
    <astearns> ack florian
    <dael> jcraig: Suggestion alisonmaher mentioned about a way to match both, I don't think it's desirable b/c I don't know of need. Looked like dlibby commented along the same lines
    <dael> florian: Thanks to alisonmaher and jcraig.
    <TabAtkins> q-
    <dael> florian: I disagree with jcraig this is people tweaking colors b/c forced-colors changes the colors of your webpage and since you don't have full range of colors available a number of htings will break like gradients. force-color pallate is reduced
    <TabAtkins> florian is saying exactly what i was going to
    <dael> florian: b/c of that I thinkw e fall into needing reduced complexity
    <fremy> I agree with florian
    <jcraig> dlibby's comment: https://github.com//issues/5433#issuecomment-780191074
    <dael> florian: Otherwise, I think priority of consistency applies. For authors separation is nicer. Slightly shorter syntax is probably not worth it. Users, though, nice for the small set of users not to be forgotten
    <dael> astearns: Any other comments?
    <dael> [silence]
    <jcraig> q?
    <dael> astearns: Proposal is remove the forced value for prefers-contrast
    <jcraig> q+
    <fantasai> s/prefers-contrast/prefers-contrast and de-link the two media queries/
    <Rossen_> q?
    <dael> florian: I think we've made progress about where there's an issue. Not sure we agree on the solution
    <Rossen_> ack JaseW
    <astearns> ack jcraig
    <Rossen_> ack jcraig
    <dael> jcraig: On mac and iOS the underlying archetecture allows us to use increased contrast and other settings and would allow a really high contrast forced-colors in the future. Similar to MS. Issue we've seen in the past is b/c MS is only impl of forced-colors we don't know end result will match that exactly
    <dael> jcraig: We don't have direct plans to do that, but I'd like to see it.
    <Morgan> q+
    <TabAtkins> q+
    <dael> jcraig: Leaving the forced-colors media feature open and extensible would allow us to better match varients across impl. Shoehorning into prefers-contrast limits that in the future. I think it would be good to leave extensible
    <dael> Rossen_: Quick point, chrome is almost done so won't be only one I presume
    <dael> jcraig: I'm talking platform, not browser
    <dael> Rossen_: My bad. I thought you were talking about browser
    <astearns> ack Morgan
    <astearns> ack TabAtkins
    <dael> Morgan: I have a follow up. FF has its own version of forced-colors that we allow on any platform. It's another impl same as MS one. There is another sort of platform impl there.
    <dael> TabAtkins: In jcraig earlier comment you seemed to say you should leave forced-colors more open. Do you think there's anything we could query for about forced colors beyond on or not? From our designs there wasn't anything you can conclude beyond on or not
    <jcraig> q+
    <dael> fantasai: And forced-color limits the pallate. You could have forced-color that's similar to increased contrast which keeps hue but turns the constrast way up
    <dael> TabAtkins: I don't think that's consistent with idea of forced-colors as we have
    <dael> fantasai: yeah, forced-contrast mode
    <astearns> ack jcraig
    <fantasai> s/way up/way up, but that would be a different feature/
    <dael> jcraig: Speculating on that question. Closest thing I'm aware of is closed captions have default colors and forced colors. Similar to user styles vs overwritten user styles where you can say if media doesn't spec the font then I want it to be in monospace. If it does spec leave as spec. And you can override author
    <florian> q?
    <florian> q+
    <dael> jcraig: Closest thing to speculate on is this mixed force-ness where you may say for caption blocks I want forced, but don't care about others. mixing of DOM and elements. All speculation
    <astearns> ack florian
    <dael> florian: I think today I'm the only one who explicitly was in favor of retaining it. I would like a sense of if I'm alone
    <dael> TabAtkins: In IRC both fantasai and I said we think the same as you
    <dael> fremy: And I did
    <dael> astearns: My take is we have two separate opinions and neither side has conviced the other. My bias is remove until people can be all convinced it should be there
    <dlibby> q+
    <dael> fantasai: Would create compat problems. prefers-contrast is triggering...I guess can try, but if triggering on some cases but not other and we change it. Would be a minority of cases, I guess
    <dael> Rossen_: Do you have data?
    <dael> florian: My part it's logic but not data. I suspect MS is only party with data. We would want to look at the particular color schemes used by those with forced-colors which are neither high or low contrast
    <jcraig> q+
    <dael> Rossen_: What about data of use removing it and looking for compat risk?
    <dael> florian: That's future compat. If we do it one way and switch there are problems. If we remove it a small minority of users would have things worse if you follow my logic.
    <astearns> ack dlibby
    <astearns> ack jcraig
    <dael> dlibby: Wanted to note we can gather data as we ship to understand impact. On compat point seems main motivation is for user and not web author. If seeing harm for users I think that's more of a concern than compat since those are the users who want these rules. But data of shipping without value could be useful
    <dael> jcraig: I would agree if there's evidence. but florian said it was based on logic, sounded like speculative logic.
    <dael> jcraig: Quoting dlibby from the issue, florian said MS would be one to know. dliby says [reads]
    <dael> jcraig: It's about author and user benefit
    <TabAtkins> q+
    <florian> q+
    <astearns> ack TabAtkins
    <dael> jcraig: And if this is larger problem in practice we can add, but removing is more difficult. It sounds like that comment is in favor or removing now. Fair dlibby ?
    <dael> dlibby: Yes
    <fantasai> agree with jcraig's last assessment
    <fantasai> (and also the point TabAtkins is making now)
    <dael> TabAtkins: Not to belabor too much. Idea about unclear author guidance, the point is there is explicit author guidance. ANyone with contrast preference you should reduce visual complexity.
    <jcraig> dlibby from the issue: "We didn't get to this in the F2F last week, but I agree with the core of @cookiecrook's argument - I don't think there is strong evidence for the boolean form of prefers-contrast being used to reduce visual complexity, and would probably be difficult for authors to reason about (enhancement in service of respecting a user preference is much different from adjusting in response to forced changes to a page's appearance)."
    <dael> TabAtkins: Concern with add later is by then benefit of hey this is a new feature user guidance is lessened. Would be nice to have consistent story to say most of the time use prefers-contrast in bool and you can listen to more or less or system pallet, but for overall design bool works great
    <jcraig> ..."As anecdata, I also ran across this blog post that expresses some of the same sentiments:
    <jcraig> https://kilianvalkhof.com/2021/css-html/prefers-contrast-forced-is-a-mistake/ "
    <astearns> ack florian
    <dael> TabAtkins: If we decide we don't want it's not more problematic then adding in the future. Worst case we say it never matches. Not great, but we've had it before and cna shove in an appendix
    <dael> florian: I did feel strongly against removing while we hadn't reached understanding about the question b/c felt bad to users was inappropriate. We do understand the disagreement now. Still feel strongly, but less bad about being overruled.
    <dael> astearns: Can we get a resolution to remove the value and unlink the features and if there's user data in the future we can revisit
    <jcraig> q+
    <tantek> regrets+
    <dael> fremy: Removing the value, we also mean if people enable the high contrast but set at middle contrast they won't match the MQ. That makes the feature useless. On windows I would jsut use MQ for forced-colors. Or I would have to dup the code. I'm not sure if value is nes but it makes sense.
    <dael> fremy: Even if you treat the contrast as peole from Apple said, you want to remove complexity. You want same behavior when using forced colors
    <jcraig> @media (prefers-contrast) or (forced-colors)
    <dael> emilio: Can't you just not use or?
    <emilio> s/not//
    <jcraig> q+ to mention these are different features
    <dael> fremy: True, but thing is devs won't test special case. They will assume prefers-contrast works. nobody will catch this tiny use case. That's the key of the issue
    <dael> astearns: From my PoV, your particular case where someone used forced-colors to select with no contrast, I would prefer it did not match rpefers-constrast b/c there is no constrast. I think it's an argument to delink
    <dael> fremy: Then maybe name is misleading. We want to use feature to reduce complexity, maybe name is wrong. Seems it would be unfortunate
    <astearns> ack jcraig
    <Zakim> jcraig, you wanted to mention these are different features
    <dael> jcraig: Was going to say same. This is core of disagreement. Half the people think there's an association between people using forced colors in the window where it doesn't match but they still want less complexity
    <TabAtkins> Alternate proposal: we drop (prefers-contrast) entirely for right now while we study the problem more and see if there's better things to do in the visual complexity sphere
    <jcraig> "In my opinion, if CSS needs a media feature for prefers-reduced-complexity or prefers-improved-legibility, the working group should consider those separately."
    <dael> jcraig: I get it, but I don't agree it's a match. I also suggested similar to your suggested fremy ^
    <dael> jcraig: The contrast features should be about constrast and forced-color should be about colors. I don't agree with a 100% corrilation
    <myles> +1 to what james just said
    <dael> fremy: What you said makes sense
    <dael> astearns: TabAtkins suggestion in IRC I think we should consider separately
    <dael> astearns: Prop: Removed the forced value
    <jcraig> s/should be about constrast and forced-color should be about colors/should ONLY be about contrast and forced-colors should ONLY be about forcing colors
    <jensimmons> I agree with what James just said — the 100% association between the two isn't best.
    <jcraig> s/should be about constrast and forced-color should be about colors/should ONLY be about contrast and forced-colors should ONLY be about forcing colors/
    <fantasai> jcraig, the reduction in complexity isn't because that's specifically requested. It's because in a reduced palette, you don't have the option to use intermediary colors and you *have to* make changes accordingly
    <leaverou2> +1 to what TabAtkins suggested
    <dael> TabAtkins: That was jcraig suggestion and I was [missed]. Just aminutes correction
    <TabAtkins> s/TabAtkins suggestion/jcraig suggestion/
    <dael> astearns: Will anyone object to removing it?
    <dael> florian: Can we get a promise to collect data about the cases where it would be different?
    <dael> fantasai: What data do you want?
    <Morgan> q+
    <dael> florian: Color schemes people use that would be neither high nor low and therefore would no longer match. So we can look and see if we made thigns better or worse
    <dael> fantasai: Won't know unless you look at a page
    <astearns> ack Morgan
    <dael> TabAtkins: Since we have requirement that forced-color sheme opts into more or less, assuming there's a middle ground collecting data about it is would be valuble
    <aja> planning on keeping (prefers-contrast: no-preference), i hope
    <fantasai> of course
    <dael> Morgan: Adding probes in FF which should detect browser and platform
    <dael> astearns: Objections?
    <dael> RESOLVED: Removed the forced value from prefers-contrast MQ
    <florian> thanks Morgan
    <jcraig> q+
    <dael> astearns: TabAtkins proposal to drop prefers-constrast all together. Would get in way of collecting data
    <dael> florian: Not necessarily. Collecting data about user settings, not sites
    <dael> TabAtkins: Yeah, data isn't about if MQ is used, how categorization would work
    <dael> astearns: I thought it would be useful to have to get set of people that have choosen a color scheme and have the MQ but missing out
    <astearns> ack jcraig
    <aja> q+
    <dael> jcraig: Sounds like a windows argument. If we drop prefers-contrast can't impl apple contrast settings. They indecate a preference for more contrast. We have a beta impl for prefers-constrast:more in WK
    <dael> TabAtkins: The prop is we drop temp while we think about problem space of constrast and visual complexity. We can bring right back when decide separate or don't need to think about visual complexity. It would be worse if we ship and then decide should be different.
    <dael> jcraig: I don't think we've done this quickly. Has taken years to standardize prefers-constrast values. Just agreed less and more instead of high and low. Taken years b/c difference between Windows, and MacOS, and Android.
    <aja> might want to consider a way to SET prefers-contrast in user stylesheet
    <dael> jcraig: Reduced complexity has higher association to prefers-reduced-transparency. I don't know we want to mix streams, but if you're associating should be reduced-transparency. Would object to removing
    <jcraig> s/Would object to removing/Would object to removing prefers-contrast/
    <dael> TabAtkins: they're all reasonably linked, sure. Concerned we have large set of prefers options and authors need 6 MQs to target when there's a potential most people can be well served by broader MQs. Let the specific ones exist, but I don't want 10 prefers queries that subtilly interact in ways that are confusing.
    <dael> TabAtkins: Worried if we don't guard against it. Has taken a while, but it's because people talk slowly. WE can move quickly if we want
    <astearns> ack aja
    <aja> might want to consider a way to SET prefers-contrast in user stylesheet
    <dael> astearns: [reads IRC comment]
    <dael> fantasai: Can't really set in user stylesheet. Can in user preferences. We're not going to introduce cycle between MQ and properties
    <dael> astearns: And users know how to set browser preferences much more
    <astearns> ack fantasai
    <astearns> zakim, close queue
    <Zakim> ok, astearns, the speaker queue is closed
    <dael> fantasai: When you have a reduced pallate which happens when you have increased or reduced constrast or forced colors you have to make changes. yOu don't have intermediary colors. You have to remove things that require drawing these colors.
    <florian> q+
    <dael> fantasai: Applies with forced-color or change in constrat. Argument for prefers-constrast triggering isn't that they want to reduce visual clutter, it's that you have less colors and need to adapt. You can't use a subtile drop shadow. You need a solid border or nothing
    <dael> fantasai: If someone wants a reduced visual complexity category, that's broder and separate.
    <tantek> s/pallate/palette
    <fremy> Proposal: (color-reduction: forced | optional) and that is `optional` when prefers-contrast is set to more or less
    <dael> fantasai: Regards to prefers-constrast, if we want to try without forced value at first we could. But I agree with TabAtkins it means we can't teach it when forced-colors is on and you can loop it into same MQ. Authors won't get benefit of trigger on both. Forward compat issue won't be that huge b/c most people will fall under prefers-constrast.
    <dael> fantasai: The people that do fall in will have a problem or won't and we can handle it later. But you don't get author benefit to teaching the grouping
    <dael> astearns: I'd like to close the discssion for this meeting. TabAtkins if you want to continue the idea can you open a new issue on GH?
    <dael> TabAtkins: Sure
  10. frivoal commented on Feb 26, 2021

    @frivoal
    Collaborator

    Fixed through a2f6a35 (and d7b7f4b for typos), so closing.

    @cookiecrook, I'd appreciate if you could confirm being satisfied with this edit.

  11. self-assigned this
    on Feb 26, 2021
  12. michael-n-cooper commented on Mar 10, 2021

    @michael-n-cooper
    Member

    Note APA is just waiting for signoff from @cookiecrook before closing in our tracker.

  13. cookiecrook commented on Mar 11, 2021

    @cookiecrook
    ContributorAuthor

    @frivoal Just seeing this, but I don't see a unified PR linked. PR review assignments are usually the way I would spot these.

    Is a2f6a35 the only substantive diff?

  14. cookiecrook commented on Mar 11, 2021

    @cookiecrook
    ContributorAuthor

    Comments in each individual diff: a2f6a35 and d7b7f4b

  15. cookiecrook commented on Mar 17, 2021

    @cookiecrook
    ContributorAuthor
  16. frivoal commented on Mar 18, 2021

    @frivoal
    Collaborator

    @cookiecrook we had a resolution, so I went ahead without a pull request. a2f6a35 is indeed the only substantive commit. I'll respond to your two comments.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions