1. 52

This thing has been bugging me for a while and today I got inspired and wrote this on my way home.

I’d be happy if you have feedback on making it better somehow. It was thrown together on the train and English is not my first language.

With apologies to all professional, standards-loving and careful developers who use Chrome, this text is obviously not about you : )

  1.  

  2. 18

    This text doesn’t have a date, but given you sound like you just worte it before posting: No, please don’t make webpages compatible with IE.

    I’m fine with the rest, of course please make webpages that are compatible, standards compliant and run in all modern browsers. Modern browsers, not deprecated browsers. IE is undeveloped for years, it has basically no security support, it’s bad. Making IE user’s life miserable is a good thing for the future of the web, because the sooner it’s miserable enought that they stop using it the better.

    I want a web that’s not dominated by Google, but I also want a web that’s capable of getting new features and getting rid of cruft and insecurity.

    1. 22

      have to disagree, people rarely use it by choice.

      you’re doing the equivalent of blaming a wheelchair user for requiring ramp.

      1. 11

        By supporting those legacy users, you are letting their businesses externalize the costs of not upgrading onto the rest of the web. A car analogy may help.

        Imagine there’s a person who has a horse, and really likes the reins they put on the horse. They use the horse to get to town and do their errands. One day, cars arrive, and eventually get so cheap that people are just giving away cars. But, the owner has spent money on a picture of their horse and a saddle and by God they’re not just gonna throw away that investment in favor of some new-fangled car.

        That’s all well and good, but the associated requirement to have every parking garage and restaurant provide a place to tie up the horse, have a trough for the horse to drink from, and have some way of dealing with the waste–all to support that one person–would rightly be mocked and pilloried.

        And don’t even let’s get started on the engineering issues that limit how highways and streets and bridges must be built to accommodate the horse as well as cars that then degrade the performance of those things for car users.

        All so that some jerk can hold on to Mr. Ed until they can recoup their investment at a glue factory.

        1. 1

          You are describing trying to achieve equal functionality for the horse rider, whereas all that is necessary is not disallowing them road access, and a reasonable allowance for graceful degradation, which is sooner or later necessary for humans walking the road anyway, aka other browsers you may not even be aware of. IE is a red herring in a sea of other browsers that lazy devs use as an excuse to not design properly, IMO. I use NN3 and Lynx as my accessibility baseline, and it has not hindered me a whole lot.

          It is not business users who are using IE at this point, but elderly and disadvantaged, who don’t have the means to upgrade… and you are basically telling them to fuck off. It’s okay though, I’d wager you’re working on either CRUD or advertising anyway, so no big loss.

          /troll

          1. 2

            It is not business users who are using IE at this point, but elderly and disadvantaged, who don’t have the means to upgrade… and you are basically telling them to fuck off.

            How are we sure? For a good long time, the biggest users of IE were from pirated copies of Windows XP in China.

            1. 0

              Is there a good reason I would want to exclude users of pirated Windows XP from China in my website?

              1. 2

                If your complaint is “Think of the old people!” and the numbers suggest “well, it’s actually Chinese software pirates” you need to justify your position differently. Anyways, we’ve taken up enough space here.

                1. 2

                  I don’t understand what you’re saying…

                  Is it that because the majority of IE users have been shown to be from China, it means there aren’t any elderly using IE?

                  Or that it’s OK to exclude Chinese IE users? Because they’re from China? Or because they’re using pirated Windows XP on their aged computers?

                  Or something else, besides that it’s OK to exclude certain users because writing for more than one browser is challenging, perhaps too difficult for you to figure out?

                  Or maybe that, since you’ve run out of arguments, this discussion should end automatically?

                  Could you please clarify?

                  1. 1

                    If you’re against excluding users it hardly matters which users you might be excluding, since you don’t want to exclude any users. If you support excluding users their demographic matters a fair bit. In that context the differing opinions here make a lot of sense to me.

                    1. 1

                      I am definitely in the former camp. I think it is completely reasonable to expect being able to include most users, including no-JS, 5-year-old browsers, 10-year-old browsers, and that 486 you just dug out of the closet. Few bother to actually do it, but who cares?

                      For example, this website could be accessible to users without JavaScript if only it was actually designed that way from the start, or, less efficiently, extended to support it and tested thorougly. But who cares? It’s all technically-minded people who can enable JS, and the JS is pretty light, so there are few complainers.

                      But that is the difference between, for example, Hacker News, where upvoting something with JS disabled will send you to page that registers your vote and then redirects you to the same page plus an anchor pointing to the comment you voted on, and lobste.rs, where you get a disappointing lack of response.

                      1. 6

                        HN is the marketing arm of a firm worth billions.

                        Lobste.rs is a community-run volunteer effort; I’m sure a pull request would be accepted.

                        1. 2

                          Good point. I’ll start looking.

      2. 8

        If you want to support all web users, make one version of your app with all the bells and whistles, and make sure that it works with all modern browsers. But, make another “light” version that works without JS or fancy CSS, and make it easy to fall back to that. The “light” version will work on IE as well as other old or weird browsers, and the main version can lose cruft and use newer browser features with less effort. The “light” version should be easy to maintain. It only needs to support essential app functionality, in the most boring way possible.

        I know, many developers can’t just decide to do this. But it’s an option that decision makers should be aware of: show them Gmail’s “Basic HTML” version, for example.

        1. 13

          If you build the light version first, and then add the bells and whistles, much happiness will come your way.

          1. 9

            Agree. For those who wasn’t working in the field 10 years ago when this was cool, here is some more info: https://en.m.wikipedia.org/wiki/Progressive_enhancement

            My attempt at summarizing it: Javascript only allowed to simplify stuff that will work anyways without Javascript. E.g. you start by coding a plain html dropdown and then add JS to swap it for an autocomplete if the browser supports it. Of course this also goes for styling, it should be OK in the oldest supported browser but it is ok to add more advanced CSS for browsers who support it.

          2. 4

            I just submitted a good example of that in response to this comment.

            1. 2

              It’s worth pointing out that Gmail’s Basic HTML is amazing and much better than their “nice” UI in my opinion.

          3. 9

            The archived link states that the javascript code was this epic thing:

            if (is.opera)
            {
            window.location.href="config/error.htm";
            }
            
            1. 4

              any major browser that isn’t Chrome or Chromium and isn’t just a shim over Chromium parts, e.g. Firefox, Safari or IE

              Do I get it right that you imply that Firefox is a shim over Chromium parts (which is not true) or do you want to say that Safari is not a shim over Chromium parts (which is also not quite true, Safari is based on WebKit too)?

              1. 3

                Nice catch! Will try to make that clearer!

                1. 3

                  Changed that part to:

                  Try using the web application in any major browser that isn’t Chrome or Chromium and isn’t just a shim over Chromium parts. You could for example try in Firefox, Safari or even bad, old IE.

              2. 3

                As other have said, this is just factually wrong:

                Try using the web application in any major browser that isn’t Chrome or Chromium and isn’t just a shim over Chromium parts, e.g. Firefox, Safari or IE.

                1. 3

                  Safari is Webkit, Firefox is Gecko, Edge hasn’t migrated yet (what was theirs called? Titan?), IE is end-of-life.

                  Vivaldi, Opera and a several others use Chromium/Blink for their rendering engine.

                  What part isn’t factual?

                  1. 3

                    The line can be read multiple ways, one of which suggests that Safari, FF, IE, are just skins.

                  2. 2

                    Thanks! Yes, that part seems easier to misread than to read correctly. Very good example of the kind of feedback I wanted, thanks!

                  3. 3

                    a Chrome-application is an similar to a

                    1. 2

                      Thanks, should be fixed now :-)

                    2. 3

                      With apologies to all professional, standards-loving and careful developers who use Chrome

                      These people exist? (I’m making a joke)

                      1. 2

                        I mostly build stuff for my own consumption, often to play with new web technology. I mostly run Chrome and derivatives so that’s what I test and develop on.

                        I wish there were more choices but everything else has some showstopper problems for me. IE and Safari don’t run on most of my computers. Non-Safari WebKit seems to be struggling, and in general WebKit is lagging in features. My negative experiences with Mozilla as a company and Firefox as an open source project make me disinterested in investing in their ecosystem.

                        1. 18

                          My negative experiences with Mozilla as a company and Firefox as an open source project make me disinterested in investing in their ecosystem.

                          This statement perfectly captures the problem outlined by the article. There is no Mozilla ecosystem, only a web ecosystem. An ecosystem which is at risk of becoming one with the Chrome ecosystem.

                          A rich and diverse web ecosystem is a benefit to you and everyone else, no matter your opinion on Mozilla or any other browser vendors.

                          1. 16

                            That’s funny, my negative experiences with Google as a company and Chrome as an EEE project make me disinterested in investing in their ecosystem.

                            1. 1

                              I forgot what EEE stood for and had to look it up. With that in mind: well put!

                            2. 1

                              My negative experiences with Mozilla as a company and Firefox as an open source project make me disinterested in investing in their ecosystem.

                              In the context of what we’re discussing, that’s like saying that a well-run autocracy is preferable to a work-in-progress democracy. If you want to see why most people aren’t on the same page with you on this, just change a few words to shift the perspective:

                              My negative experiences with Google as a company and Chrome as a closed source project make me disinterested in investing in their ecosystem.

                              Firefox being inconvenient is all the excuse you need for your personal projects. I’m not sure what your negative personal experiences with Mozilla/Firefox are, but when you put these experiences so vaguely, you’re not really arguing anything.

                              1. 2

                                I’ve worked on several Gecko based open source browsers and Mozilla were hostile and seemed to see us as a threat to the Firefox product. Bugfixes to address issues Firefox users were seeing were rejected. I’ve wasted enough of my life trying to treat them as a well intentioned part of the open source / open web community.

                            3. 2

                              Try using the web application in any major browser that isn’t Chrome or Chromium and isn’t just a shim over Chromium parts. You could for example try in Firefox, Safari or even bad, old IE.

                              I’m not that much better, because I just test my (hobby projects) under Firefox, but setting that aside: How should I, if don’t have access to Windows or Mac machines, test it using Safari or IE?

                              1. 3

                                My point that I state in the post is if it works in Firefox it most likely works in other browsers too. So you get to eat your cake and partially have it too.

                                Or at least that is my experience.

                                When it comes to code from Chrome only guys it seems there are more cross browser defects. How much comes from attitude I don’t know.

                                1. 2

                                  I use Firefox exclusively (I f’ing hate Google), but I have to wonder: Is it really the case that “when it works in Firefox it works elsewhere”? To me it seems that Chrome just has a higher rate of new feature adoption (often before it’s well and properly standardised), but that doesn’t mean Firefox doesn’t have (or couldn’t have) any features that other browsers have chosen not to implement (yet). It just so happens that Mozilla doesn’t have as much money to throw at implementing new features just yet.

                                  If this situation ever changes, or if you truly want to support browsers as broadly as possible, you should probably be testing with browsers without JavaScript, with older browsers and so on.

                                  1. 1

                                    To me it seems that Chrome just has a higher rate of new feature adoption (often before it’s well and properly standardised)

                                    Well, if one use a Chrome feature that others haven’t been able to implement yet because it is not standardized then it more or less by definition is a Chrome-app.

                                    but that doesn’t mean Firefox doesn’t have (or couldn’t have) any features that other browsers have chosen not to implement (yet).

                                    Technically yes, but how often have you seen a “Firefox only” web app?

                                    1. 1

                                      Well, if one use a Chrome feature that others haven’t been able to implement yet because it is not standardized then it more or less by definition is a Chrome-app.

                                      Standardisation on the web often goes via implementations, so after a while it will work on Firefox too. If the feature is an absolute requirement (which, admittedly, it often isn’t) it should be acceptable to use it while it isn’t fully standardised yet.

                                      How often have you seen a “Firefox only” web app?

                                      Well, never (that I recall), but I still think it’s not great advice to tell people to just use one specific browser and test in that and call the application portable (for the same reason that it’s not great to only test in Chrome).

                                      1. 1

                                        to just use one specific browser and test in that and call the application portable (for the same reason that it’s not great to only test in Chrome).

                                        We can agree on that.

                                        What I was shining a light on is that there seems me to have developed a cult of almost ourigth arrogance in some parts of web development.

                                        A lot of what I wrote could have been more or less copy pasted and sent back in time to cover IE developers until 2006. (The tide turned somewhere between 2006 and 2008 I guess.)

                                        1. 2

                                          What I was shining a light on is that there seems me to have developed a cult of almost ourigth arrogance in some parts of web development.

                                          Don’t get me started :(

                                          Developer arrogance is a thing that has been on my mind lately. It really irritates me how big of a superiority complex many developers have towards other developers, but also to customers or other non-technical folk. Probably this is caused by me growing older and more understanding and appreciative of others who bring different things to the table. For sure I used to be an arrogant prick myself (and I still catch myself making comments I regret).

                              2. 2

                                It sure is fun to build chrome and Google up as some sort of cartoon villains, but in the real world, if you’re building with standards, it’s going to work in 99% of the cases across any modern browser. Supporting internet explorer is a decision people should make based on their users, not some sort of worldwide metric.

                                The return on investment needs to be analyzed for decisions like that, because supporting antiquated technology (or running multiple versions of your application) is really not feasible for most teams. The resources to do that are not always available.

                                The most annoying bit of this argument to me is that native developers don’t face this type of harassment even though their versions die on OS upgrades all the time, even Apple’s own software. IE11 is about 6 years old now. That is ancient in web technology, and it was behind the standards even even it came out. What you’re really asking is that companies support 6-10 year old tech but also deliver a modern feel so they don’t look like some sort of time capsule. It’s a silly argument.

                                Nothing that I make on the side is or will be tested in IE at all. It works in chrome, Firefox, safari, and edge. That’s enough platforms for me.

                                1. 4

                                  It works in chrome, Firefox, safari, and edge.

                                  If you know it works in all these I consider you one of the good guys :-)

                                  I’ll admit I might have put IE in partly for the effect: I wrote all this in a hurry and it seemed like a good idea at the time. IE used to be the big bad wolf and is now reduced to almost nothing, so it kind of feels fun to defend it.

                                2. 1

                                  This whole article is basically just a strawman. Ignoring that, the simple fact of the matter is firefox and chromium are the only browsers I can reasonably test against as both can be run heedlessly and controlled by something like selenium. The other browsers are either extremely fringe, like palemoon; outdated, also like palemoon; require a specific nonfree os with specific license costs, like IE; or require racks of devices, safari.

                                  Anecdotally, for internal use webapps I’ve only ever got complaints from someone using a 4 year out of date chrome and one person who for some reason uses palemoon. I don’t see a reason to include a whole compatibility toolchain like babel or the financial times polyfills for these individuals.

                                  Even in customer facing web applications, there are some things that cant be trivially polyfilled. I’ve experienced this with some canvas apis and safari, because safari for some reason lags severely behind firefox and chrome at implementing web standards. It’s not easy for me to test this browser, because as I said above, it requires specific hardware and software licenses that are not “free.”

                                  1. 4

                                    the simple fact of the matter is firefox and chromium are the only browsers I can reasonably test against as both can be run heedlessly and controlled by something like selenium.

                                    There used to exist a SAAS tool (hehe) for testing layouts across multiple browsers. Don’t know if it still exists and if it supports modern js-heavy sites thought.

                                    That said, as I pointed out in the post: if you actually test in Firefox it will typically also work in Chrome and other browsers.

                                    1. 2

                                      There are several such services, with BrowserStack and Sauce Labs being quite popular.

                                      1. 1

                                        That said, as I pointed out in the post: if you actually test in Firefox it will typically also work in Chrome and other browsers.

                                        the vice versa is usually true as well and firefox has its own quirks that chromium does not support. e.g. select > option onclick handlers, instead of just a select onchange handler.

                                        Firefox isn’t exactly a saint in this regards either and it’s just as easy to build “firefox” apps too.

                                        1. 2

                                          probably correct but for some reason I rarely see that happen in practice.

                                          When was the last time you came across across a website that only worked in Firefox?

                                      2. 4

                                        The simple fact is, competent websites run on any browser because competent websites don’t use weirdo bizarre technologies like ActiveX or whatever the modern equivalent might be. Toy websites might get away with only supporting the specific software setup on the author’s desk, but websites which support people using assistive technologies, people in the Third World, and, most importantly, people trying to give the website owner money will be as accessible as possible, for much the same reason Walmart doesn’t install a ten-foot freeclimb wall in front of their main entrance.