The Vendor Prefix Predicament: ALA’s Eric Meyer Interviews Tantek Çelik

0

Eric Meyer of A List Apart, CSS temptress and fan of businessman prefixes, interviews Tantek Çelik, Mozilla’s web standards lead, on Mozilla’s argumentative digest to support -webkit- prefixed properties. Tantek precipitated a tide problem in Web Standards Land during a open public of a W3C CSS Working Group, in that he conspicuous a sequence of WebKit-only mobile sites, thereby formulating a browser monoculture. Tantek discussed Mozilla’s fortitude — carrying Firefox Mobile feign to be like Webkit and support a few -webkit- CSS properties — that confused many in a standards community, generally when member from Opera and Microsoft immediately resolved about a problem and announced matching skeleton to Mozilla’s. The following row was conducted around EtherPad, benefaction messaging, e-mail, and write calls. – Ed.

The Vendor Prefix Predicament: ALA's Eric Meyer Interviews Tantek elik

Let’s start with a basics. What accurately are a Mozilla, Opera, and Internet Explorer teams digest to do?

I can’t pronounce for a Opera and Internet Explorer teams. Mozilla is now examining mobile web sites for a confederate of mysterious behaviors—sites that are sniffing for a WebKit user deputy string, and customarily event high-fidelity mobile ease accordingly; and sites that are controlling customarily or radically -webkit- prefixed properties.

Based on that analysis, we are digest on implementing a UA twine for Firefox Mobile that passes such UA-sniffing—ironically, this is matching to how WebKit total “like Gecko” to a UA twine when Safari launched—and implementing specific -webkit- prefixed properties on a case-by-case basis, when fit by a information collected.

You’re not going to customarily zodiacally map -webkit- to -moz- ? The digest is to customarily support a unaccompanied subset of all -webkit- properties?

Right. Our guess here is to minimize a array of other vendor-prefixed properties that we have to support to customarily those that are fit by a data, and that will make a inadequacy to Firefox Mobile web users. The information we have so apart does not pure unconditional support of all -webkit- properties.

In addition, we are concern customarily subordinate a -webkit- prefixed account of a ability if and/or when we also support a unprefixed version. That will produce web developers with a standards-based choice instead of controlling prefixed properties.

But as of now, we don’t know that properties that will be. Or do we?

We don’t have a specific list as of now. We’re being unquestionably warn about this, and scrutinizing a information accordingly to make certain that we have data-driven justification—that we customarily support what a information justifies supporting—and efficacy, that means origination certain that adding such support does make a inadequacy to Firefox Mobile users.

I assume that list will change over time. This seems like it’s going to breed even some-more problem for developers, given you’ll be subordinate a -webkit- prefix on some properties and not others. How do we pattern developers will keep adult with who’s subordinate whose prefixes on that properties?

Vendor prefixed properties were never pretended to be something developers could count on. They were, and are, for initial implementations and technologies in bloat from iterations of CSS user drafts in a slight of standardization. we pattern developers to keep adult with unprefixed properties and a implementations that support them. That’s what developers can count on.

That doesn’t seem realistic, though. If developers stranded to what they can count on—the unprefixed properties—we wouldn’t be in this situation.

In fact, developers adhering to what they guess they could count on is given we are in this situation—some prefixed properties were pitched as consistent and thereafter inspected as such nonetheless advancing a standards accordingly.

Will Mozilla contend a list of that prefixes are inspected on that properties?

Mozilla will continue support of what properties Firefox supports, with any famous prefixes, on developer.mozilla.org.

Okay, so that’s what we digest to do, nonetheless how about why we digest to do it? What’s a guess of your plan?

Mozilla’s guess is to open adult a WebKit-specific prejudiced of a web to other vendors in a same ensue that, years ago, Mozilla and Opera had to be rational about what IE-proprietary or IE-only technologies to support. We’ve carried a problem of both a WebKit mobile web monoculture; and also a uselessness of evangelism to argue it, notwithstanding large evangelists during Mozilla, Opera, and Microsoft user with web developers to tell standards-based cross-browser content.

With so many evangelizing a right thing, given has it been insufficient?

In a past 10+ years, web standards evangelism has been definitely effective, lifting approval and adoption of stream HTML+CSS, persisting enhancement, insignificant scripting, microformats, et cetera. However, notwithstanding Mozilla’s and others’ evangelism efforts over a past year, a WebKit-specific mobile web is multiplying faster than we can evangelize, generally in opposition to WebKit-specific evangelism, both estimable and explicit.

I journey it is a acceptable doubt to ask: what went wrong here, how did we finish adult with a WebKit mobile web monoculture notwithstanding during smallest some standards evangelism to a contrary? I’m not certain it was any one thing, we journey there were several contributing factors that together total a conditions for a display and accelerate of this sole monoculture.

First, a innovations in WebKit helped lift expectations of what was illusive on a web platform—which, to be clear, was and still is a unquestionably good thing, as advancing a power of a open web tallness is a guess that we all share.

Second, a widespread WebKit adoption in iPhone, Android, and BlackBerry. This should have been a warning sign; that is, when churned vendors all use a unaccompanied implementation, there is a high contingency of a monoculture emerging.

Third, we’ve seen crafty evangelism of -webkit- comforts by Apple and Google, many quite as prejudiced of “HTML5” presentations and demo sites. Some of those “HTML5” sites have subsequently been updated with churned vendor-specific prefixes for initial CSS comforts (for some-more cross-browser demonstrations and coding). However, a useful outline of early WebKit-only versions still echoes today.

Fourth, there have also been years of talks in perceptibly any web design/development contention where speakers, intense to beg and imply a latest rupturing edge, showed sites and regulation built with -webkit- prefixed properties. This assuming implicit, if not explicit, support to aim and regulation radically or customarily for WebKit, generally on mobile sites.

Lastly, all of a above has been exacerbated by how enlarged it has taken a CSS user organization to sequence some of these innovative -webkit- prefixed properties, so that all browser engines could support them nonetheless prefixes, including WebKit, and produce web developers a standards-based choice they can count on.

You conspicuous you’re doing this for Firefox Mobile users. So this digest is customarily in your mobile product, and not in a desktop browser?

The UA twine for Firefox Mobile is already conflicting than Firefox Desktop, so yes, that prejudiced mentioned surpassing is specific to a mobile product. As apart as implementing sole -webkit- properties, we’re now weighing a choice of subordinate them customarily in mobile, so restraining exposure, contra providing a unwavering Firefox/Gecko tallness for web developers that they can count on.

Since a guess here is to produce a unwavering believe for all mobile users, it seems graceful approaching you’d eventually endorse to produce a unwavering believe for all Firefox users, doesn’t it? Thus causing this digest to widespread from mobile to desktop.

The problem we’ve found is secretly with mobile web sites that have been coded for WebKit-only. Since there’s many some-more browser hotchpotch on a desktop, there’s a lot rebate WebKit-only coding duty there. This is where a potency requirement comes in—if something doesn’t indeed assistance a user, there’s no reason to use it. So we could use this conflicting a Firefox platform, nonetheless there’s many rebate of a prove to it if doing so doesn’t make a desktop believe softened for users. We still have to journey a impact on developers, though, and that cunning be enough. We competence try things in beta builds to get feedback.

Along a same lines, this doesn’t seem like something that will stay unaccompanied to a few properties here and there. It seems some-more like once a pathway is open, eventually you’ll get to a prove of customarily treating -webkit- as if it were your possess prefix. Or even if Mozilla doesn’t, thereafter Opera or Microsoft will do it during some prove and subsequently you’ll be forced to follow suit. True, or no?

I journey that’s fortuitous on presumably we can open adult a WebKit mobile web monoculture or not. History has shown that Mozilla and others succeeded with opening adult a IE web monoculture with unaccompanied doing of a few IE-only comforts such as innerHTML and XMLHttpRequest, both of that have been subsequently stereotyped with a W3C. There was no unconditional doing of IE-only comforts in Firefox. Mozilla has a plain line record here of unquestionably warn and case-by-case useful doing of comforts for web compatibility.

But suppose, say, Opera goes contemptuous and zodiacally supports -webkit- for reasons matching to those when they had their UA twine default to Internet Explorer for a while. Wouldn’t that force Mozilla onto a same path? And if not, given not?

If another mobile browser supports -webkit- universally, we don’t see how that impacts a situation, given a widespread mobile browser engine, WebKit, already supports -webkit- universally.

Peter-Paul Koch has conspicuous definitely forcefully that “there is no WebKit.” You see it differently, obviously.

It doesn’t matter that Peter-Paul Koch says “there is no WebKit”—what matters is that web developers trust and act as if there is a WebKit. They are coding and shipping mobile sites accordingly, by sniffing for WebKit UA strings, and by controlling customarily -webkit- properties. That outcome is measurable. Denying it doesn’t make it not so.

And by developers doing so, they’re giving a reduced or, in a set-back case, shop-worn believe to users of non-WebKit browsers like Mozilla, Opera, and Explorer.

Right. We’re observant downlevel or “feature-phone” ultra-minimal and reduced functionality use being sent by mobile web sites to non-WebKit mobile browsers.

In during smallest some of those cases, we wholly support what they’re doing, only they’ve dim it behind -webkit- prefixes?

Yes. Current versions of Firefox support -moz- prefixed versions of CSS3 gradients, transforms, animations, et cetera. We’re user actively with a CSS Working Group to quick lay a sole specifications and dump businessman prefixes on such quick features. That ensue we can all assistance a web tallness pierce contemptuous with standards, rather than handfuls of businessman prefixes.

How mostly is a site truly broken, though? If a site is conflicting nonetheless still functional, that’s kind of what we pattern on a web already. It seems like your genuine dispute is that your browser’s digest is rebate spiffy, not that users are being hermetic out. Is this unquestionably a jeopardy to a adoption and use of non-WebKit browsers?

They’re mostly broken. These downlevel mobile sites are conflicting and significantly rebate functional. When users see a roughly worse believe in a conflicting browser on a site on a same device, they condemnation a browser, not a site, nor a device.

The pledge of businessman prefixes was that implementations could be tested in a mad and problems corrected before duty was formalized. That paid off handsomely with slope syntax, for example, where totally disdainful syntaxes were attempted out, and eventually a one syntax was found. This digest seems like it imperils that ability—that, once vendors start subordinate any others’ prefixes, we competence as good dump prefixes altogether. Is that a reasonable conclusion?

Sometimes there’s an outlook in technologies that they’ll be perfect, nonetheless any flaws or bumps. Of course, such expectations have no bases in believe so it’s not pure where they come from. CSS businessman prefixes are no conflicting in this regard. They’ve indeed been definitely successful—many browsers experimented with iterations on several comforts for years, eventually standardizing what works.

Mozilla, in particular, has an stately line record of confusing things early with a -moz- prefix, and when standardized, shipping a standard, unprefixed ability as good as dropping a initial -moz- prefixed version. There has been pain along a ensue sometimes, too: for example, how enlarged it took border-radius to get standardized, that it is now. However, a WebKit mobile web monoculture is almost a initial time we’ve seen a vicious problem with businessman prefixes. Should we give adult on businessman prefixes now, notwithstanding their wrong nonetheless substantial line record?

There have been calls to return businessman prefixes with “universal” prefixes, such as -x- or -beta-. What’s your take on that idea?

Experience has shown in other standards efforts that when there is a beta or initial prefix, like -x-, that everybody does finish adult subordinate them eternally in serve to a unprefixed version. For example, check your email headers—you’ll see lots of X-* headers. Or a fact that browsers have to support image/x-png in serve to image/png for PNG images.

On a contrary, with CSS businessman prefixes, Mozilla has shown it is illusive to dump -moz- prefixed properties and pierce a web forward. we trust during smallest one other browser businessman has been means to eventually dump their businessman prefixed properties after they’ve shipped a prevalent unprefixed versions.

Why couldn’t “universal” prefixes be secluded a same ensue businessman prefixes have been? What’s a difference?

Universal prefixes spin seen as consistent conflicting browsers, and so a network effects reinforcing their use and support are stronger—perhaps crafty adequate to need subordinate them indefinitely for compatibility, like a aforementioned X-* mail headers and ease types.

There is a matching risk when churned browsers support -webkit- prefixed properties. This risk could be mitigated and maybe even overcome if churned browsers support a comparable unprefixed properties, and we enthuse web developers to instead use those relocating forward. However, that won’t correct a WebKit-specific mobile sites that have already shipped.

So this is focused on controlling a problem now, during risk of formulating a matching problem in a future. Aren’t we customarily deferring a pain?

It’s definitely a challenging problem with many variables and many actors. The mixed of patching past problems and enabling a consistent route for destiny expansion provides a good change of aiding users and developers. We’re basing a ensue on examine and collecting data, and pattern to rise and iterate it as such.

No ensue is nonetheless risk, nonetheless doing 0 during all, or insincere there is no problem, is riskiest of all given it merely lets a WebKit mobile web monoculture worsen. The final time we had a web monoculture, it set a open web behind for years.

Daniel Glazman, co-chair of a CSS Working Group, put out a call for movement in response to your plan. Do we have any suggestions for what we can do to titillate a situation?

As web developers, there are few pivotal things we can do.

First, stop doing “WebKit”-specific UA-sniffing and content-serving, generally on mobile.

Second, stop customarily controlling -webkit- prefixed properties, and presumably use a unprefixed ability where it’s stereotyped or “stable” per a Working Group; or, if it isn’t stable, use any vendor’s prefixed ability where they’ve announced or shipped support.

Third, assistance scold corrections for any sites we see that are doing WebKit-specific UA-sniffing and/or customarily controlling -webkit- prefixed properties. Similarly, assistance scold corrections for any webdev sites that are promoting, even implicitly, a use of WebKit UA-sniffing and/or use of only -webkit- prefixed properties.

Most importantly, set a good example. Use web standards initial and initial in your sites, articles, and talks. When deliberating or demoing initial comforts or standards-in-progress, presumably in one browser or many, be adult front with warnings, and make it pure what’s silken now competence smack tomorrow.