Re: [whatwg] Supporting feature tests of untestable features

A lot of the "untestable" bugs have been around for a really, really long time, and are probably never going away. In fact, as we all know, as soon as a bug is around long enough and in enough browsers and enough people are working around that bug, it becomes a permanent "feature" of the web.

So to shrug off the concerns driving this thread as "bugs can be fixed" is either disingenuous or (at best) ignorant of the way the web really works. Sorry to be so blunt, but it's frustrating that our discussion would be derailed by rabbit trail stuff like that. The point is not whether this clipboard API has bugs or that canvas API doesn't or whatever.

Just because some examples discussed for illustration purposes are bug related doesn't mean that they're all bug related. There **are** untestable features, and this is an unhealthy pattern for the growth/maturity of the web platform.

For example:

1. font-smoothing
2. canvas anti-aliasing behavior (some of it is FT'able, but not all of it)
3. clamping of timers
4. preflight/prefetching/prerendering
5. various behaviors with CSS transforms (like when browsers have to optimize a scaling/translating behavior and that causes visual artifacts -- not a bug because they refuse to change it for perf reasons)
6. CSS word hyphenation quirks
7. ...

The point I'm making is there will always be features the browsers implement that won't have a nice clean API namespace or property to check for. And many or all of those will be things developers would like to determine if the feature is present or not to make different decisions about what and how to serve.

Philosophically, you may disagree that devs *should* want to test for such things, but that doesn't change the fact that they *do*. And right now, they do even worse stuff like parsing UA strings and looking features up in huge cached results tables.

Consider just how huge an impact stuff like "caniuse" data is having right now, given that its data is being baked into build-process tools like CSS preprocessors, JS transpilers, etc. Tens of millions of sites are implicitly relying not on real feature tests but on (imperfect) cached test data from manual tests, and then inference matching purely through UA parsing voodoo.

Received on Wednesday, 8 April 2015 13:00:04 UTC