Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Should ally.js support older browsers? #71

Closed
rodneyrehm opened this issue Nov 22, 2015 · 14 comments
Closed

Should ally.js support older browsers? #71

rodneyrehm opened this issue Nov 22, 2015 · 14 comments

Comments

@rodneyrehm
Copy link
Member

Browser support as of ally.js 1.0.1:

ally.js has been tested on IE10+, Android 4.4+ and iOS8+ alongside the latest desktop versions of Firefox, Chrome and Safari.

For me and my projects that's good enough. For future jQueryUI that is good enough, but for current jQuery to use ally.js we'd have to support IE8+.

This issue is here to collect your thoughts on the minimum browser version (specifically IE, but also Android WebView and iOS Safari) that ally.js should support. We're trying to assess where we should focus development time…

Simply comment with "IE8", "IE9", "IE10" (which means no change). If you see any other browsers (like UC Browser or Yandex Browser) in need of special attention, call for it.

@ginader
Copy link

ginader commented Nov 23, 2015

Did you run your tests against the mentioned Browsers just to see where we're at? Maybe it's not "a whole lot" of extra work? Is it?

@rodneyrehm
Copy link
Member Author

Did you run your tests against the mentioned Browsers just to see where we're at? Maybe it's not "a whole lot" of extra work? Is it?

not yet. not a bad idea, why did I not think of that?

@ginader
Copy link

ginader commented Nov 23, 2015

👍

@braders
Copy link

braders commented Nov 23, 2015

"IE8"

To clarify, I don't mind if features don't necessarily work, but the library should degrade gracefully so that I can use ally.js and not worry about it breaking other scripts on older browsers. No fatal errors should be thrown.

I guess it would also be good to highlight in the docs any exceptions to the general browser support for each feature/ component.

@rodneyrehm
Copy link
Member Author

To clarify, I don't mind if features don't necessarily work, but the library should degrade gracefully so that I can use ally.js and not worry about it breaking other scripts on older browsers. No fatal errors should be thrown.

@braders: How would you make an ES5 library not fail in an ES3 browser (without including the ES5shim) though? Simply overwrite all ally.* functions with no-ops?

I guess it would also be good to highlight in the docs any exceptions to the general browser support for each feature/ component.

@braders: Are ally.is.focusRelevant notes and ally.maintain.disabled notes examples of that, or did you have something else in mind?

@braders
Copy link

braders commented Nov 23, 2015

How would you make an ES5 library not fail in an ES3 browser (without including the ES5shim) though? Simply overwrite all ally.* functions with no-ops?

I'm thinking basic feature detection - If functions are used that simply don't exist in IE < 8 then break out of the relevant function. Something like

if( ! 'querySelector' in document) {
     return
}
//run the function in modern browsers

I guess it would also be good to highlight in the docs any exceptions to the general browser support for each feature/ component.

Exactly like that - Didn't notice that earlier. Great job.

@rodneyrehm
Copy link
Member Author

I'm thinking basic feature detection - If functions are used that simply don't exist in IE < 8 then break out of the relevant function […]

I know the concept (and ally.maintain.disabled is doing that in case of MutationObserver on IE10). But since everything requires ES5, I would have to break out of everything, rendering the library completely useless on ES3 (… but not throwing any errors).

@braders
Copy link

braders commented Nov 23, 2015

I've actually just noticed 'ES5-shim' is listed as an implict dependency on the readme. I've not seen it mentioned on the website though (might have missed it). Maybe it should be?

Sounds like it would be a big effort to add ie8 + 9 support without the polyfill though and I can't see people much caring as long as it works if the polyfill in place.

@rodneyrehm
Copy link
Member Author

I've actually just noticed 'ES5-shim' is listed as an implict dependency on the readme. I've not seen it mentioned on the website though (might have missed it). Maybe it should be?

I guess Getting started is a good place to repeat the "system requirements"…

Sounds like it would be a big effort to add ie8 + 9 support without the polyfill though and I can't see people much caring as long as it works if the polyfill in place.

The ES5 shim is only necessary for IE8 (ES5 compat table).

@braders
Copy link

braders commented Nov 23, 2015

👍 Sounds good

@rodneyrehm
Copy link
Member Author

I've started looking at adding support for IE9 in the branch issue/71-support-ie9. In this branch ally.js is fully functional in IE9 (as in all tests are green). The file size rose from 79K to 82K (gzipped 19K to 20K). ally.is.focusable shows 4 false positives for <object> and <keygen> (which still needs fixing).

@rodneyrehm
Copy link
Member Author

As discussed in #112 we've made sure that ally.js can be loaded in IE8. executing any of the methods is a different story. Since Intern does not run on IE8, we have no way of verifying the libraries integrity on that browser.

Other than Adding full support for IE9 and loading support for IE8, we've switched UA sniffing from browser to rendering engine, in the hopes to catch more things on android browsers - which we are currently not testing automatically.

@rodneyrehm rodneyrehm added this to the 1.1.0 - second wave milestone Feb 21, 2016
@mgol
Copy link

mgol commented Mar 5, 2016

Since you mentioned jQuery - we've just released jQuery 1.12 supporting IE6+ & 2.2 supporting IE9+. Those will be the last releases in the 1.x/2.x lines, we're now preparing for a jQuery 3.0 release that will only support IE9+. We're officially ending jQuery IE8- support.

@rodneyrehm
Copy link
Member Author

Thanks for the heads up @mgol, much appreciated!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants