No More Internet Explorer or Compatibility Mode, Instead Upgrade and Use Enterprise Mode
I hate when developers tell me they have to build their line of business web applications targeting Internet Explorer 9.
This tells me volumes either about the developer's team and the company they work for. It tells me they do not have a grasp on the state of modern web standards and browser capabilities.
Microsoft's Chris Jackson wrote that Internet Explorer is not a browser any longer, but a compatibility solution.
But here is the reality, Microsoft deprecated Internet Explorer in January 2016.
It has very limited support available and is NOT updated by Microsoft any longer.
Jackson also goes on to say that using Internet Explorer inside an organization is technical debt by default. When you chose to code for IE or don't pay attention to modern standards you are choosing to be compatible with 1999!
When developers say they have to support Internet Explorer it says something about their company leadership or lack of leadership or vision. Generally the string of explanation goes something like this:
"Our employees are required to use Internet Explorer 9. The primary reason is we have legacy software that only runs in Internet Explorer 9, therefor all our new projects are held hostage to these legacy standards".
This means you and your business are living in the past and it is costing you money in more ways than one. But there is a better option, and I am going to explain why you should never write web sites with Internet Explorer support as a requirement and what your business can do if you rely on outdated software.
- So Why Is Internet Explorer Part of Windows 10?
- Progressive Web Application Minimal Requirements
- Should You Continue to Support Internet Explorer
- Developers and Business Need to Stop These 6 Practices
So Why Is Internet Explorer Part of Windows 10?
One word, enterprises.
Microsoft's primary revenue source is catering to enterprises. These businesses have thousands of 'line of business' applications. Most of these applications are what we consider legacy, meaning they are old and outdated.
Why don't enterprises upgrade their line of business applications?
I find there are two reasons:
- Large Upgrade Cost From Vendors and System Integrators
- Fear of Changing Processes that Are Not Broke
Back when Internet Explorer was released Microsoft commissioned a study on the economic impact of upgrading to the new version. We can glean some insights into why enterprise and any business should try not only to upgrade, but to stay current with modern web standards.
The study surveyed 150 enterprise IT admins and performed detailed interviews with 4 companies about their experiences upgrading to Internet Explorer 11. The report includes some estimated costs and returns, but I found several points emphasized over and over as very compelling:
- Improved IT Security
- Reduced IT Support Costs Due to Fewer Browsers
- Improved Productivity Due to Application Performance
- Improved External Web Performance
- Improved Web Site Reliability/Reduced Failure Rates
- Reduced Web Application Development Costs
The primary obstacles holding companies back from upgrading are compatibility and interoperability. This means their existing applications do not work properly in modern browsers, like Internet Explorer 11. This limits companies to older, less secure operating systems and older, less secure browsers to run their critical line of business applications.
"Being on a modern browser and providing good user experience is very important in today’s competitive landscape. “IE11 makes us look professional,” said one interviewee. “It helps us to win and retain business. A well-run desktop reflects a well-run company."
By utilizing Internet Explorer 11 the companies were able to achieve positive results:
- Reduced implementation effort
- Reduced application development effort
- Reduced ongoing support and application development testing.
- Increased business user productivity
While this study was done when Internet Explorer was released the findings I think are universal about keeping line of business software current. Don't let the fact that Microsoft commissioned the study discount it's validity. I don't think they reported anything that is biased toward their products per se. But more to encourage you and all businesses to have confidence to upgrade legacy systems.
The Death of X-UA-Compatible
To help businesses maintain legacy applications Microsoft added a custom META tag or HTTP Header older versions of Internet Explorer would use to toggle rendering engines.
This tag would tell Internet Explorer to use an older engine when the site was not compatible with more modern standards. There were some limitations, but most applications could run effectively.
This helped enterprises confidently upgrade Internet Explorer and versions of Windows without fear of breaking critical line of business applications.
But when Microsoft Edge was released things changed. X-UA-Compatible was deprecated and ignored. Instead they introduced Enterprise Mode, a more robust way to toggle rendering engines.
If your site still contains the X-UA-Compatible META tag, this is a sign the code is extremely outdated and you should update. Unfortunately, I still see new sites launched with this tag in the HEAD. When I see the X-UA-Compatible tag I know their developers are not strong web developers and is a signal to me the rest of the code may not be well crafted. Think of it as a brown M&M.
Internet Explorer Enterprise Mode
Enterprise Mode also means you are not wasting money supporting applications designed for a world before the 2008 mortgage crisis. Up till the release of Internet Explorer 11 the only option was to send either an X-UA-Compatible HTTP Header or use a META tag in your page's HEAD to kick IE into a compatibility mode.
While compatibility mode could solve many issues legacy applications have with modern browsers and web standards, compatibility mode was not a completely compatible experience. This forced many enterprises, held hostage to applications designed for obsolete standards, to hold off on upgrading not only their browsers, but operating systems.
Enterprise Mode was designed for enterprise IT departments to enable legacy applications using Internet Explorer 11. Enterprise mode removes one of the primary reasons enterprises are holding their workforce back with Internet Explorer 8.
Enterprise Mode allows companies to designate web sites to run against Internet Explorer version 7, 8, 9, 10 and Quirks Mode. It also allows most ActiveX controls and deprecated technologies to run without incident.
Because Internet Explorer and the safe haven enterprise mode is will go away, enterprises should leverage enterprise mode telemetry to identify applications that need to be upgraded and plan to do so sooner rather than later.
This is an important point, so don't miss it:
Identify the legacy software in your business and upgrade to a modern solution. Do not trust Enterprise Mode will be available forever. Assume it will be removed soon and make the decision to change software solutions.
How Does Enterprise Mode Differ from Compatibility Mode?
Some of the features supported by legacy versions of Internet Explorer, like ActiveX, were not easy to implement in compatibility mode. Enterprise Mode has be engineered to safely enable these obsolete features.
There is more to the answer than that, but that is the key point, more complete compatibility.
The other feature is management. Enterprise mode can be managed through group policy. This means your system administrators can create a configuration file, identifying rules for Edge and Internet Explorer to properly open your legacy applications.
This configuration file can and should be deployed via group policy. This means you won't have to worry about employees managing the use of enterprise mode by hand, using their limited technical judgement.
Internet Explorer Enterprise Mode
Enterprises can use their group policies to point Internet Explorer to an XML file with a list of domains that should render in Enterprise Mode or use the legacy Internet Explorer 8 support. This is an example of the XML:
The enterprise mode configuration document includes a version number that IE uses to determine if the file needs to be updated or the previously cached version is current. Inside the <emie> element you can specify domains that should use the new enterprise mode.
In the example below https://msdn.microsoft.com and https:/bing.com will be rendered using the IE 8 engine. The Bing image site, images.bing.com will not be rendered using Internet Explorer.
You can configure sub-domains to behave differently as your line of business applications warrant.
Enterprise Mode can also be implemented from the browser's toolbar:
There is also a mechanism for users to report a URL to the IT department that should use enterprise mode that is not currently in the configured list. Sorry I do not have a screen shot of how to do this right now.
This is a new feature that will hopefully bring an end to the drag enterprises are having on the web by remaining IE 8 users. By ending the need to standardize on IE 8 I also hope this puts to rest some of the misinformed jokes around the Internet about Internet Explorer issues, as many of those have been resolved years ago. Internet Explorer Enterprise Mode Support is supported by Internet Explorer 11 for Windows 7.
Microsoft has even made a utility to help enterprise IT departments manage their legacy sites, Enterprise Mode Site List Manager. This is a utility to help create the required XML to drive Enterprise Mode that can be deployed via Group Policy.
You can find details on how to use the enterprise mode list utility on the Microsoft site.
Should You Continue to Support Internet Explorer
As a developer you should
explain why Internet Explorer is not a modern browser run from any project requiring Internet Explorer support.
Businesses should make an effort to either upgrade line of business applications to modern web standards. If you can't afford upgrade pricing from your vendor it is probably time to evaluate other options, including a new vendor or building custom solutions.
I can guarantee there is probably better technology available today to solve your business needs your software may be keeping you from utilizing. Honestly, you are probably paying more for the legacy software than it would cost to upgrade to a modern solution.
Microsoft will not keep Internet Explorer alive much longer. I think January 2020 is the planned end of life and support. This means your company will be on its own and worse have to run unpatched, legacy versions of Windows to use your 15-20-year-old software.
I mean think about that, 20-year-old, not updated software!
You can do better, and your business deserves better.
Internet Explorer should not be your business' primary browser. It should only be used when you have to use legacy software. You should be using Edge or some other browser. A key advantage to standardizing on Edge in your business its ability to trigger Internet Explorer based on a configuration that can be managed through group policy for those legacy web applications.
For the general consumer there is not a viable reason you should use Internet Explorer. Instead use Edge, Chrome, FireFox, really any modern browser, just not Internet Explorer. Stop asking how to remove Internet Explorer from Windows, just don't use it instead.
Developers and Business Need to Stop These 6 Practices
Many of the legacy standards and techniques these applications were written against have either been deprecated or replaced by better native browser APIs. For example, all Flash applets can be replaced with native HTML, like the video and audio elements.
Enterprises can still execute legacy web applications in IE 11 using Enterprise Mode, but should already be upgrading those systems to modern standards.
Now that legacy Internet Explorer is dead here are 6 things you should do today.
1. Update Your DOCTYPE
The DOCTYPE is not an HTML element, it is a browser directive. Back in the HTML 4.0 days this tag was used to tell the browser what version of HTML the page was written. That technique has long since been abandoned by all browsers, but many developers use outdated templates and development tools that still include the old versions.
HTML5 kept the DOCTYPE so old browsers would not break, rendering the page in Quirks Mode. Today the DOCTYPE tag should only be added as the following:
2. Remove <!--[if IE 8]><html class="no-js lt-ie9"><![endif]-->
This is a common technique used in the HEAD element to load IE specific CSS files. You can use this hacky If statement chain to load IE version specific CSS and is often chained with if IE 7, if IE 8 if IE9. You no longer need this excess fat, so do a global search and replace on your applications.
3. Standardize on the latest jQuery Version
If you are still using jQuery please upgrade to the latest version, 3.2.0. If you are using any version starting with 1 or 2 you are out of date.
This is another opportunity to fix the web in general. jQuery usage is very fragmented because sites use so many varieties of jQuery. Once a version is added to a site it is never updated to the latest. You should always ship the latest version of a dependency because you get the latest bug fixes and potential security patches.
Getting the web synchronized on version 3.3.0 or just removing jQuery completely, also means less HTTP traffic as the library can more easily be cached from common CDNs. This is a win-win for everyone.
4. Stop Using ActiveX Controls
ActiveX is a dead technology and is the number attack mechanism in Internet Explorer. Edge does not support ActiveX and you should not either. If you need video, stop using Flash and switch the the Video or Audio HTML elements.
HTML5, CSS3 and ECMAScript have come a long way in the past 7 years. Most likely what you are using an insecure ActiveX control to do can be done better with a native solution today.
5. Remove X-UA-Compatible
The X-UA-Compatible META element is an Internet Explorer browser directive to tell older versions of IE which rendering engine to use. IE stopped using that element in the past year as only the latest version (11) is supported unless the site is designated for Enterprise Mode.
X-UA-Compatible is now just wasted characters with no one listening.
6. Remove Internet Explorer 10, 9, 8 and 7 Support From Your Project Requirements
This has long been the bane of the web developer's life, adding hacks and workarounds to support these old, outdated browsers. No more, if your project requires supporting these browsers today is the day you should push back and get that requirement stricken for good. Go ahead call an emergency meeting and declare those requirements dead, drop the mic and walk out of the room. Yeah, it feels good to be a gangster.
If your company insist on supporting browsers Microsoft does not support then might I suggest looking for a new job elsewhere. Seriously your company wants to live in the past, as a technologist you cannot afford to live there, you must live in the present or future. I would consider this a major issue. Again if your company has applications that have not been upgraded yet, they should be running Internet Explorer 11 in Enterprise Mode.
If your marketing or business folks push back, concerned they might be eliminating a large potential market, ask them if that is true. This might be a good signal the potential customer is not a qualified buyer or maybe a high maintenance buyer.
Remove those legacy browser support requirements, your project will become much easier to build and you can start focusing on building rich web applications your customers will love!