Compatibility/Taxonomy: Difference between revisions

Jump to navigation Jump to search
reorganizing the content and adding cases
(taxonomy page.)
 
(reorganizing the content and adding cases)
 
Line 2: Line 2:
Explore the reasons why a site fails in a browser.
Explore the reasons why a site fails in a browser.


* '''The Web site is using a specific vendor technology'''. Examples: Think about prefixed CSS and JavaScript. Specific codec for video supported only in one browser, platform, …  
'''The Web site is…'''
** We can outreach the site. Long process and not always successful
 
** We may be able to shim it inside Firefox while attempting to do outreach.
== Using a specific vendor technology ==
** We can fix it in Firefox if really widespread on too may sites. It becomes (unfortunately) part of the Web reality.
 
* '''The Web site is sending a specific working version of the site'''. Often based on user agent sniffing both on the client side or/and the server side. Examples: Different tier version for different browsers (Google search, Baidu, etc.). These can be very difficult to solve. It's more business related than a technical issue.
=== Examples ===
** We can outreach to the site, if we can demonstrate that the other version is working well in Firefox.
* prefixed CSS and JavaScript (<nowiki>-webkit-*</nowiki>, <nowiki>webKit*</nowiki>).  
** We can create a UA override in some circumstances. Drawback: we disappear from the statistics.
* Specific codec for video supported only in one browser, platform,  
* '''The Web site is sending to a specific interactions of the site through features detections.'''
* …  
** We can outreach to the site.
=== What can be done? ===
** We can try to shim it.
 
* '''The Web site is using a standard technology not yet supported by Firefox.''' Example: SpeechRecognition. This creates a load of secondary issues such as adding future code detection legacies. The Webcompat issues of today are sometimes created by the lack of support of technologies of yesterdays.
* Outreach to the site. Long process and not always successful
** We need to fix it in Firefox.
* Shim it inside Firefox while attempting to do outreach. (Site Interventions)
* '''The Web site is using a non-standard technology not yet supported by Firefox.''' Example from the past: innerText, window.event, … These are hard to fix. When we fix it in Firefox, we create secondary compatibility issues, because sites were relying on it. Example: using window.event, to target the detection of keyCode.
* Fix it in Firefox if really widespread on too may sites. It becomes (unfortunately) part of the Web reality.
** We can fix it in Firefox, but we need to deal with the consequences too.  
 
** We can outreach if the problem is not widespread.
 
 
== Sending a specific working version of the site ==
 
Often based on user agent sniffing both on the client side or/and the server side.  
These can be very difficult to solve. It's more business related than a technical issue.
 
=== Examples ===
 
* Different tier version for different browsers (Google search, Baidu, etc.).
 
=== What can be done? ===
 
* Outreach to the site, if we can demonstrate that the "fancier version" is working well in Firefox.
* create a UA override in some circumstances. Drawback: we disappear from the statistics. (Site Interventions)
 
 
 
== Sending to a specific interactions of the site through features detections ==
 
Basically the sites are doing the right thing here, but someone having a degraded UX behavior compared to someone using a different browser will report it as the browser not working.  
 
=== Examples ===
 
* Sending a video with a codec with lower definitions
 
=== What can be done? ===
 
* Outreach to the site.
* Shim it. (Site Interventions)
 
 
 
== Using a standard technology not yet supported by Firefox ==
 
The Webcompat issues of today are sometimes created by the lack of support of technologies of yesterdays.
 
=== Examples ===
 
* SpeechRecognition. This creates a load of secondary issues such as adding future code detection legacies.
 
=== What can be done? ===
 
* Implement it in Firefox
 
 
== Using a NON-standard technology not yet supported by Firefox ==
 
These are hard to fix. When we fix it in Firefox, we create secondary compatibility issues. Sites sometimes use these as signals for codepath selection to trigger different user experiences.
 
=== Examples ===
* innerText (FIXED)
* window.event (FIXED)
* CSS Zoom
 
=== What can be done? ===
* Implement it in Firefox, but we need to deal with the consequences too. Example: using window.event, to target the detection of keyCode.
* Outreach if the problem is not widespread.
 
 
 
== Relying on a bug of another browsers ==
 
There is a spec but specs are sometimes not implemented exactly the same. Not every corner cases and spec interactions are tested. But market shares have a strong influence on which bugs become de facto normative as developers rely and test on the main market share browsers of the moment.
 
=== Examples ===
* Some sites were broken because Firefox implemented the flexbox spec and Chrome had a different way of doing things.
 
=== What can be done? ===
 
* Outreach '''if''' the behavior/usage is not well-spread
* File a bug on Blink and/or WebKit repos to help them fix the issue. (The decision will be adjusted depending on Counter stats)
* Change the firefox behavior to match the other browser behavior and change the spec to reflect the reality of implementations.
 
 
 
== breaking because of Mozilla technology choices ==
 
=== Examples ===
 
* Enhanced Tracking Protection (ETP) will block resources online and hence will break websites in unexpected ways.
 
=== What can be done? ===
 
* Outreach to the site '''but''' only in limited ways. We can't ask a website to not track users if it's part of their business models. It's their choice.
* Explain people using firefox they made the choice to use ETP strict and that breakage is expected.
* Shim it so the site doesn't break. This is borderline in some cases.  
 
[[Category: Web Compatibility]]
[[Category: Web Compatibility]]
Confirmed users
1,567

edits

Navigation menu