Re: [csswg-drafts] [css-color-4] [css-color-5] inconsistent mentions of powerless components in `white`. (#8609)

The problem is that the spec says:

> User agents may treat a component as [powerless](https://drafts.csswg.org/css-color/#powerless-color-component) if the color is "sufficiently close" to the precise conditions specified. For example, a gray color converted into [lch()](https://drafts.csswg.org/css-color/#funcdef-lch) may, due to numerical errors, have an extremely small chroma rather than precisely 0%; this can, at the user agent’s discretion, still treat the hue component as powerless. It is intentionally unspecified exactly what "sufficiently close" means for this purpose.

It says a user agent _may_ treat hue as powerless if chroma is _sufficiently_ close. Are browsers applying this logic? If they are, are they using an exact value of 0 for chroma instead of a threshold? What seems to be happening is that browsers are either not setting hue to undefined in this case or are expecting chroma to be exactly zero.

This should _not_ be a check on lightness as this is not just a white or black issue, this occurs with gray and other achromatic colors as well.

Chroma doesn't need to be undefined to get a sane transform, but it does require hue to be undefined. The spec doesn't suggest a threshold close to zero, but maybe it should be for each cylindrical space in order to ensure browsers are on the same page. This threshold may be a little different for each color space as not all spaces resolve chroma as close to zero as others.


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


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

Received on Thursday, 6 July 2023 20:52:57 UTC