React: Define specific browser support guidelines

Created on 31 Mar 2017  路  11Comments  路  Source: facebook/react

As it stands the only real solid guideline we have for browser support is that we support IE9+. But there are so many other outdated browser versions that are unreasonable to support or worry about.

It would be useful if we had more specific guidelines on what browsers we should target. Does Safari on iOS 3 matter? FireFox 4? You get the idea.

If we had a well-documented range of browser version that we know should work it would make it a lot easier to run through our DOM fixtures in BrowserStack and know we're safe.

Maybe the internal core team can work internally with analytics to see what browsers Facebook needs to support and work forward from there?

cc @gaearon @nhunzaker

DOM Discussion

Most helpful comment

Here's my thinking based on checking some browser stats. It doesn't provide a full list but at least provides a list of some browsers that we definitely need to support. For things not on this list, we'll need to discuss more but I'm hoping this list can at least be helpful as a baseline.

Definitely supported with full support:
Chrome 49 (last available on XP/Vista)
Firefox ESR
IE 11
Safari 10
Edge 14

Probably supported with full support:
Safari 7
Chrome 41 (seeing a bunch of traffic here on Windows 7, not sure why)

Probably OK not to support:
Safari 6
IE9 (not 100% sure on this)

Definitely not supported (would be nice to enumerate what this means. should anything work?):
IE8

All 11 comments

I like the idea of getting a browser list from Facebook.

Additionally, we've recently sent out a couple of PRs removing legacy IE8 code, but there's still quite a bit left:

  • [ ] [ReactDOMFiberInput controlled radio check](https://github.com/facebook/react/blob/master/src/renderers/dom/fiber/wrappers/ReactDOMFiberInput.js#L296-L305)
  • [ ] [ReactDOMInput controlled radio check](https://github.com/facebook/react/blob/master/src/renderers/dom/stack/client/wrappers/ReactDOMInput.js#L297-L306)
  • [ ] [ReactDOM Compat mode check](https://github.com/facebook/react/blob/master/src/renderers/dom/ReactDOM.js#L103-L113)
  • [ ] [CSSProperty.js](https://github.com/facebook/react/blob/master/src/renderers/dom/shared/CSSProperty.js#L72-L89)
  • [ ] [CSS Property shorthand](https://github.com/facebook/react/blob/master/src/renderers/dom/shared/CSSPropertyOperations.js#L36-L46)
  • [ ] [EnterLeave plugin ownerDocument](https://github.com/facebook/react/blob/master/src/renderers/dom/shared/eventPlugins/EnterLeaveEventPlugin.js#L61)
  • [ ] [ReactBrowserEventEmitter mountAt](https://github.com/facebook/react/blob/master/src/renderers/dom/shared/ReactBrowserEventEmitter.js#L160-L165)
  • [ ] [setTextContent](https://github.com/facebook/react/blob/master/src/renderers/dom/shared/setTextContent.js#L18-L28)
  • [ ] [SyntheticUIEvent view polyfill](https://github.com/facebook/react/blob/master/src/renderers/dom/shared/syntheticEvents/SyntheticUIEvent.js#L35-L40)
  • [ ] [getEventCharCode](https://github.com/facebook/react/blob/master/src/renderers/dom/shared/utils/getEventCharCode.js#L36-L37)
  • [x] ~getEventModifierState~: Safari does not support getModifierState until 10.1

Another useful chart:
http://caniuse.com/usage-table

I will try to write something up for this next week. Bug me incessantly in a week if I've forgotten please.

@spicyj , you could self-assign this issue to you, and then make it a habit to check https://github.com/issues/assigned for things you've forgotten. Just a suggestion.

@spicyj the incessant bugging is slated to begin at any moment 馃槃

okay can't wait

@spicyj 馃悰

Sorry, maybe next week. :(

Any final plan?

Here's my thinking based on checking some browser stats. It doesn't provide a full list but at least provides a list of some browsers that we definitely need to support. For things not on this list, we'll need to discuss more but I'm hoping this list can at least be helpful as a baseline.

Definitely supported with full support:
Chrome 49 (last available on XP/Vista)
Firefox ESR
IE 11
Safari 10
Edge 14

Probably supported with full support:
Safari 7
Chrome 41 (seeing a bunch of traffic here on Windows 7, not sure why)

Probably OK not to support:
Safari 6
IE9 (not 100% sure on this)

Definitely not supported (would be nice to enumerate what this means. should anything work?):
IE8

For determining the current Firefox ESR, I found this downloads page helpful:
https://www.mozilla.org/en-US/firefox/organizations/all/

Was this page helpful?
0 / 5 - 0 ratings