Go Back

How iOS and Safari are becoming the new Internet Explorer

It used to be that I consistently had to write special-use code for Internet Explorer.  Oldie, but goody Javascript functions like addEventListener() didn’t work with Internet Explorer.  As time went on, I would find similar Javascript, CSS, and HTML oddities that seemed to only occur on Internet Explorer.

These bugs were the things you didn’t want to think about as you developed.  They were the little annoying ones that seemed to come out in QA.  Stuff like having an extra scrollbar, or an element not filling a space correctly.  As Chrome and Firefox took off, I’m sure the people behind Internet Explorer started to realize to realize that devs were getting tired of scouring StackOverflow for the Internet Explorer way of doing things.

I’m sure after a while many devs, myself included, noticed IE-only bugs and decided just to push code to production hoping that nobody would notice.  As time went on, people would stop noticing.  At least in the United States, no one I know used it!

I’m noticing now, however, that iOS and Safari are now needing special-use cases.  There are definitely minor ones, but also some major ones that require significant more coding to get around.

My biggest gripe is that you can’t use CSS properties to hide and show form elements.  iOS and Safari tend to show all form elements regardless of whether or not you put a CSS rule of display: none;  I don’t know the reasoning behind this, but it can get cumbersome to develop a workaround.

For instance, I recently had to set up a complex workaround using JQuery’s .detach() method to copy and paste option elements in a dropdown.  The option values were known beforehand, so depending on the selection of another dropdown, I intended to just toggle the display properties.  I could not do this because all available options showed.  Thus, the complex workaround.

Like Internet Explorer, bugs tend to come out of the woodwork.  One other major one I can remember is that the CSS calc() function behaved differently than on other browsers.

I’m afraid that like Internet Explorer, Apple is trying to get the devs to support their way of doing things.  Like Microsoft, they feel they are big enough to make this kind of demand.  Like Internet Explorer back in the day, iOS and Safari are default programs.  And like Internet Explorer back in the day, you pretty much have to support them.  Today, Apple products are very popular and choosing not to support them is traffic suicide.  However, Internet Explorer fell out of fashion even though Windows machines are more popular today than ever.

Will iOS and Safari suffer the same fate?