Platform/Layout/CSS Compatibility: Difference between revisions
Line 34: | Line 34: | ||
* How should we consider occurrence counts of -webkit- properties? | * How should we consider occurrence counts of -webkit- properties? | ||
** Weighted by PageRank or equivalent? | ** Weighted by PageRank or equivalent? | ||
* ... | * Consider usability of page with/without the feature, not just how often it is used. E.g. tap-highlight-color does not affect the user's ability to use a website the same way text-size-adjust does. | ||
== parsing other vendor prefixes approaches == | == parsing other vendor prefixes approaches == |
Revision as of 08:37, 7 February 2012
CSS vendor-prefix compatibility
problem statement
Sites that have WebKit-specific content and back-up content for everyone else.
-webkit- properties are used so much on mobile content in particular that non-WebKit browsers face a Prisoner's Dilemma problem, analogous to past quirks battles (e.g. 2003-4 era innerHTML and undetected document.all).
data: https://bugzilla.mozilla.org/show_bug.cgi?id=708406
more problem details
Blog posts:
- http://hsivonen.iki.fi/vendor-prefixes/
- http://blogs.msdn.com/b/iemobile/archive/2010/05/10/javascript-and-css-changes-in-ie-mobile-for-windows-phone-7.aspx in particular:
"We've also added support for the -webkit-text-size-adjust CSS selector. This selector allows you to control how text on the Web page is scaled to increase readability for the user (you can also use -ms-text-size-adjust, IE Mobile recognizes both).
... [one day later] ...
"[Update 05/11/2010: based on community feedback, we will only be implementing the -ms- prefix, not the -webkit- one.]"
goals
The underlying open web goal:
- Open up the webkit-specific part of the web to other vendors in the same way that we had to be practical about what IE-proprietary or IE-only technologies to support.
straw proposal
- Consider implementing some -webkit- prefixed properties.
straw proposal downsides
- Unfortunately for the open web, implementing a -webkit- prefixed property (outside of WebKit) will nearly legitimize (make people assume they'll work forever) the use of -webkit- prefixed properties.
- ...
possible downside mitigation
- In the short term we can at least remove pain for web authors and users.
- In the long term we can ensure the unprefixed properties (in CR drafts) work and encourage authors to switch to them.
- ...
questions and methodology
- What are the thresholds (even approximate) for supporting an other-vendor prefixed property vs. not?
- How should we consider occurrence counts of -webkit- properties?
- Weighted by PageRank or equivalent?
- Consider usability of page with/without the feature, not just how often it is used. E.g. tap-highlight-color does not affect the user's ability to use a website the same way text-size-adjust does.
parsing other vendor prefixes approaches
- parse other vendor prefixed properties only in conjunction with parsing the equivalent unprefixed properties
- only do it for environments where critically necessary, i.e. mobile not desktop, to encourage use of standard equivalents.
unprefixing principles
- unprefixing things early (before CR) should be an exceptional case
- what is the methodology for "exceptional" unprefixing?
- unprefixing things must be evaluated carefully on case-by-case basis.
- unprefixing is not something to do routinely just to "go faster" by a few months.
- put the energy first into contributing and passing test suites instead.
- ...
Data on vendor-specific prefixes
Here's a summary of the data collection and analysis that has been conducted regarding the use of various CSS vendor-specific prefixes.
The current datasets, collected by John Jensen, are:
Initial CSS properties dataset
- Completed in November 2011
- Summary of 88,000 CSS files from top 30,000 sites on the web, collected using Desktop FF 8.0 User-Agent
- Tables and summary reports in https://bugzilla.mozilla.org/show_bug.cgi?id=708406
- Written report and summary tables are attached to the ticket.
- Summary file, in CSV format, is 620MB compressed, 7.2GB uncompressed, available at http://people.mozilla.com/~jjensen/css.csv.gz
Q and A
- how many sites in your mobile Webkit browser crawl use at least one of 'transition', 'transition-timing-function', 'transition-duration', 'transition-property', 'transition-delay' (ignoring prefixes)?
1245 / 30087 = 4.13%
- how many use them only with -webkit prefixes (no -moz or unprefixed versions of the properties)?
336 / 30087 = 1.12%
- how many use them only with -webkit prefixes and unprefixed (no -moz versions of the properties)?
365 / 30087 = 1.21%
- For each CSS prefix for which there are both -moz- and -webkit- prefixes, what percentage of domains host CSS that uses only the -webkit- version and not the -moz- or unprefixed version?
text-size-adjust | 510 | 1.70% |
box-shadow | 428 | 1.42% |
border-radius | 412 | 1.37% |
appearance | 379 | 1.26% |
font-smoothing | 285 | 0.95% |
tap-highlight-color | 250 | 0.83% |
transform | 75 | 0.25% |
border-top-left-radius | 72 | 0.24% |
border-top-right-radius | 72 | 0.24% |
transition-duration | 61 | 0.20% |
animation-duration | 56 | 0.19% |
animation-name | 56 | 0.19% |
border-bottom-left-radius | 55 | 0.18% |
border-bottom-right-radius | 55 | 0.18% |
transition-property | 49 | 0.16% |
animation-iteration-count | 45 | 0.15% |
padding-start | 45 | 0.15% |
background-size | 43 | 0.14% |
animation-timing-function | 42 | 0.14% |
box-sizing | 42 | 0.14% |
Larger, as-yet-unprocessed datasets
- Raw data downloading completed in mid-January 2012, using these UAs:
- latest Android Native Browser from ICS
- latest Mobile Safari UA
- Includes all HTML, Javascript, CSS files in compressed format
- Roughly 1.1m files downloaded for each UA
- CSS file parsing is underway to produce more data