ALA’s Eric Meyer Interviews Tantek Çelik – A Checklist Aside

Eric Meyer of A Checklist Aside, CSS wizard and fan of vendor prefixes, interviews Tantek Çelik, Mozilla’s net requirements lead, on Mozilla’s controversial plan to help -webkit- prefixed properties.

Article Continues Under

Tantek precipitated the present disaster in Net Requirements Land throughout a public assembly of the W3C CSS Working Group, during which he famous the predominance of WebKit-only cellular websites, thereby making a browser monoculture. Tantek mentioned Mozilla’s resolution — having Firefox Cellular faux to be like Webkit and help just a few -webkit- CSS properties — which infected many within the requirements neighborhood, particularly when representatives from Opera and Microsoft instantly agreed about the issue and introduced comparable plans to Mozilla’s. The next dialogue was carried out by way of EtherPad, immediate messaging, e-mail, and phone calls.

Let’s begin with the fundamentals.  What precisely are the Mozilla, Opera, and Web Explorer groups planning on doing?

I can’t converse for the Opera and Web Explorer groups. Mozilla is presently analyzing cellular web pages for a few problematic behaviors—websites which are sniffing for a WebKit consumer agent string, and solely sending high-fidelity cellular content material accordingly; and websites which are utilizing solely or primarily -webkit- prefixed properties.

Based mostly on that evaluation, we’re planning on implementing a UA string for Firefox Cellular that passes such UA-sniffing—satirically, that is much like how WebKit added “like Gecko” to its UA string when Safari launched—and implementing particular -webkit- prefixed properties on a case-by-case foundation, when justified by the info collected.

You’re not going to simply universally map -webkit- to -moz- ?  The plan is to solely help a restricted subset of all -webkit- properties?

Proper. Our purpose right here is to attenuate the variety of different vendor-prefixed properties that we’ve to help to solely these which are justified by the info, and that can make a distinction to Firefox Cellular net customers. The information we’ve thus far doesn’t justify blanket help of all -webkit- properties.

As well as, we’re contemplating solely supporting the -webkit- prefixed model of a property if and/or once we additionally help the unprefixed model. That may present net builders with a standards-based choice as an alternative of utilizing prefixed properties.

However as of now, we don’t know which properties that will likely be. Or will we?

We don’t have a particular listing as of now. We’re being very deliberate about this, and scrutinizing our information accordingly to be sure that we’ve data-driven justification—that we solely help what the info justifies supporting—and efficacy, which suggests ensuring that including such help does make a distinction to Firefox Cellular customers.

I assume that listing will change over time. This looks as if it’s going to generate much more confusion for builders, because you’ll be supporting the -webkit- prefix on some properties and never others. How do you count on builders will sustain with who’s supporting whose prefixes on which properties?

Vendor prefixed properties had been by no means imagined to be one thing builders might depend upon. They had been, and are, for experimental implementations and applied sciences in progress from iterations of CSS working drafts within the strategy of standardization. I count on builders to maintain up with unprefixed properties and the implementations that help them. That’s what builders can depend upon.

That doesn’t appear life like, although. If builders caught to what they’ll depend upon—the unprefixed properties—we wouldn’t be on this scenario.

In reality, builders sticking to what they thought they may depend upon is why we are on this scenario—some prefixed properties had been pitched as reliable after which supported as such with out advancing the requirements accordingly.

Will Mozilla preserve an inventory of which prefixes are supported on which properties?

Mozilla will proceed documentation of what properties Firefox helps, with any acknowledged prefixes, on developer.mozilla.org.

Okay, in order that’s what you propose to do, however how about why you propose to do it?  What’s the purpose of your plan?

Mozilla’s purpose is to open up the WebKit-specific a part of the online to different distributors in the identical manner that, years in the past, Mozilla and Opera needed to be sensible about what IE-proprietary or IE-only applied sciences to help. We’ve raised the issue of each a WebKit cellular net monoculture; and in addition the insufficiency of evangelism to struggle it, regardless of quite a few evangelists at Mozilla, Opera, and Microsoft working with net builders to publish standards-based cross-browser content material.

With so many evangelizing the proper factor, why has it been inadequate?

Up to now 10+ years, net requirements evangelism has been fairly efficient, elevating consciousness and adoption of legitimate HTML+CSS, progressive enhancement, unobtrusive scripting, microformats, et cetera. Nonetheless, regardless of Mozilla’s and others’ evangelism efforts over the previous yr, the WebKit-specific cellular net is rising sooner than we will evangelize, particularly in distinction to WebKit-specific evangelism, each implicit and specific.

I feel it’s a truthful query to ask: what went fallacious right here, how did we find yourself with a WebKit cellular net monoculture regardless of a minimum of some requirements evangelism on the contrary? I’m unsure it was anyone factor, I feel there have been a number of contributing elements that collectively created the circumstances for the emergence and reinforcement of this explicit monoculture.

First, the improvements in WebKit helped increase expectations of what was attainable on the internet platform—which, to be clear, was and nonetheless is an excellent factor, as advancing the potential of the open net platform is a purpose that all of us share.

Second, the widespread WebKit adoption in iPhone, Android, and BlackBerry. This could have been a warning signal; that’s, when a number of distributors all use a single implementation, there’s a excessive chance of a monoculture rising.

Third, we’ve seen robust evangelism of -webkit- options by Apple and Google, most notably as a part of “HTML5” displays and demo websites. A few of these “HTML5” websites have subsequently been up to date with a number of vendor-specific prefixes for experimental CSS options (for extra cross-browser demonstrations and coding). Nonetheless, the implied message of early WebKit-only variations nonetheless echoes right now.

Fourth, there have additionally been years of talks in almost each net design/growth convention the place audio system, excited to debate and display the newest leading edge, confirmed websites and code constructed with -webkit- prefixed properties.  This offered implicit, if not specific, encouragement to focus on and code primarily or just for WebKit, particularly on cellular websites.

Lastly, the entire above has been exacerbated by how lengthy it has taken the CSS working group to standardize a few of these progressive -webkit- prefixed properties, so that each one browser engines might help them with out prefixes, together with WebKit, and supply net builders a standards-based choice they’ll depend upon.

You mentioned you’re doing this for Firefox Cellular customers.  So this plan is just in your cellular product, and never within the desktop browser?

The UA string for Firefox Cellular is already totally different than Firefox Desktop, so sure, that half talked about earlier is restricted to the cellular product. So far as implementing explicit -webkit- properties, we’re presently weighing the choice of supporting them solely in cellular, thus limiting publicity, versus offering a constant Firefox/Gecko platform for net builders that they’ll depend upon.

For the reason that purpose right here is to supply a constant expertise for all cellular customers, it appears fairly seemingly you’d ultimately resolve to supply a constant expertise for all Firefox customers, doesn’t it? Thus inflicting this technique to unfold from cellular to desktop.

The issue we’ve discovered is particularly with cellular web pages which have been coded for WebKit-only. Since there’s far more browser variety on the desktop, there’s loads much less WebKit-only coding taking place there. That is the place the efficacy requirement is available in—if one thing doesn’t really assist the consumer, there’s no cause to implement it. So we might implement this throughout the Firefox platform, however there’s a lot much less of some extent to it if doing so doesn’t make the desktop expertise higher for customers. We nonetheless have to think about the affect on builders, although, and that could be sufficient. We might strive issues in beta builds to get suggestions.

Alongside the identical strains, this doesn’t look like one thing that can keep restricted to a couple properties right here and there. It appears extra like as soon as the door is open, ultimately you’ll get to the purpose of simply treating -webkit- as if it had been your individual prefix. Or even when Mozilla doesn’t, then Opera or Microsoft will do it sooner or later and subsequently you’ll be pressured to observe swimsuit. True, or no?

I feel that’s depending on whether or not we will open up the WebKit cellular net monoculture or not. Historical past has proven that Mozilla and others succeeded with opening up the IE net monoculture with restricted implementation of some IE-only options reminiscent of innerHTML and XMLHttpRequest, each of which have been subsequently standardized with the W3C. There was no blanket implementation of IE-only options in Firefox. Mozilla has a stable monitor document right here of very deliberate and case-by-case pragmatic implementation of options for net compatibility.

However suppose, say, Opera goes forward and universally helps -webkit- for causes much like these once they had their UA string default to Web Explorer for some time. Wouldn’t that power Mozilla onto the identical path? And if not, why not?

If one other cellular browser helps -webkit- universally, I don’t see how that impacts the scenario, as a result of the dominant cellular browser engine, WebKit, already helps -webkit- universally.

Peter-Paul Koch has mentioned fairly forcefully that “there isn’t a WebKit.” You see it in another way, clearly.

It doesn’t matter that Peter-Paul Koch says “there isn’t a WebKit”—what issues is that net builders consider and act as if there’s a WebKit. They’re coding and transport cellular websites accordingly, by sniffing for WebKit UA strings, and through the use of solely -webkit- properties. That impact is measurable. Denying it doesn’t make it not so.

And by builders doing so, they’re giving a decreased or, within the worst case, damaged expertise to customers of non-WebKit browsers like Mozilla, Opera, and Explorer.

Proper. We’re seeing downlevel or “feature-phone” ultra-minimal and decreased performance experiences being despatched by cellular web pages to non-WebKit cellular browsers.

In a minimum of a few of these instances, you totally help what they’re doing, besides they’ve hidden it behind -webkit- prefixes?

Sure. Present variations of Firefox help -moz- prefixed variations of CSS3 gradients, transforms, animations, et cetera. We’re working actively with the CSS Working Group to quickly advance the respective specs and drop vendor prefixes on such steady options. That manner we will all assist the online platform transfer ahead with requirements, quite than handfuls of vendor prefixes.

How typically is a web site really damaged, although? If a web site is totally different however nonetheless useful, that’s type of what we count on on the internet already. It looks as if your actual objection is that your browser’s rendering is much less spiffy, not that customers are being locked out. Is that this actually a risk to the adoption and use of non-WebKit browsers?

They’re typically damaged. These downlevel cellular websites are totally different and considerably much less useful. When customers see a considerably worse expertise in a unique browser on the positioning on the identical gadget, they blame the browser, not the positioning, nor the gadget.

The promise of vendor prefixes was that implementations could possibly be examined within the wild and issues corrected earlier than habits was formalized. That paid off handsomely with gradient syntax, for instance, the place completely incompatible syntaxes had been tried out, and ultimately a unified syntax was discovered. This plan looks as if it imperils that capacity—that, as soon as distributors begin supporting every others’ prefixes, we might as nicely drop prefixes altogether. Is {that a} affordable conclusion?

Typically there’s an expectation in applied sciences that they’ll be excellent, with none flaws or bumps. After all, such expectations don’t have any bases in expertise so it’s not clear the place they arrive from. CSS vendor prefixes aren’t any totally different on this regard. They’ve really been fairly profitable—many browsers experimented with iterations on numerous options for years, ultimately standardizing what works.

Mozilla, specifically, has a wonderful monitor document of attempting issues early with a -moz- prefix, and when standardized, transport a normal, unprefixed property in addition to dropping the experimental -moz- prefixed model. There was ache alongside the way in which typically, too: for instance, how lengthy it took border-radius to get standardized, which it’s now. Nonetheless, the WebKit cellular net monoculture might be the primary time we’ve seen a significant issue with vendor prefixes. Ought to we hand over on vendor prefixes now, regardless of their imperfect however spectacular monitor document?

There have been calls to interchange vendor prefixes with “common” prefixes, reminiscent of -x- or -beta-. What’s your tackle that concept?

Expertise has proven in different requirements efforts that when there’s a beta or experimental prefix, like -x-, that everybody does find yourself supporting them without end along with the unprefixed model. For instance, test your electronic mail headers—you’ll see plenty of X-* headers. Or the truth that browsers should help picture/x-png along with picture/png for PNG pictures.

Quite the opposite, with CSS vendor prefixes, Mozilla has proven it’s attainable to drop -moz- prefixed properties and transfer the online ahead. I consider a minimum of one different browser vendor has been in a position to ultimately drop their vendor prefixed properties after they’ve shipped the usual unprefixed variations.

Why couldn’t “common” prefixes be dropped the identical manner vendor prefixes have been? What’s the distinction?

Common prefixes grow to be seen as reliable throughout browsers, and thus the community results reinforcing their use and help are stronger—maybe robust sufficient to require supporting them indefinitely for compatibility, just like the aforementioned X-* mail headers and content material sorts.

There’s a comparable danger when a number of browsers help -webkit- prefixed properties. This danger could possibly be mitigated and even perhaps overcome if a number of browsers help the equal unprefixed properties, and we encourage net builders to as an alternative use these shifting ahead. Nonetheless, that gained’t repair the WebKit-specific cellular websites which have already shipped.

So that is targeted on fixing the issue now, susceptible to creating the same downside sooner or later. Aren’t you simply deferring the ache?

It’s definitely a fancy downside with many variables and lots of actors. The mixture of patching previous issues and enabling a reliable path for future growth gives a superb stability of serving to customers and builders. We’re basing our strategy on research and amassing information, and count on to evolve and iterate it as such.

No strategy is with out danger, however doing nothing in any respect, or pretending there isn’t a downside, is riskiest of all as a result of it merely lets the WebKit cellular net monoculture worsen. The final time we had an internet monoculture, it set the open net again for years.

Daniel Glazman, co-chair of the CSS Working Group, put out a name for motion in response to your plan. Do you might have any solutions for what we will do to enhance the scenario?

As net builders, there are few key issues we will do.

First, cease doing “WebKit”-specific UA-sniffing and content-serving, particularly on cellular.

Second, cease solely utilizing -webkit- prefixed properties, and both use the unprefixed property the place it’s standardized or “steady” per the Working Group; or, if it isn’t steady, use each vendor’s prefixed property the place they’ve introduced or shipped help.

Third, assist evangelize corrections for any websites you see which are doing WebKit-specific UA-sniffing and/or solely utilizing -webkit- prefixed properties.  Equally, assist evangelize corrections for any webdev websites that are selling, even implicitly, using WebKit UA-sniffing and/or use of solely -webkit- prefixed properties.

Most significantly, set a superb instance. Use net requirements firstly in your websites, articles, and talks. When discussing or demoing experimental options or standards-in-progress, whether or not in a single browser or many, be up entrance with warnings, and make it clear what’s shiny right now might break tomorrow.

Leave a Comment