Modernizing Microsoft Internet Explorer (IE6) Applications
As organizations look at modernizing their digital business, it is important to retire solutions that have been holding them back – the excuse you hear – to be backward compatible. Solutions that kept backward compatibility with IE6 have been clearly one of them. The applications that are available today perform many functions that were not present or even possible on a browser. The capabilities of a thin client (browser) matured over the past years where it provides capabilities of a native solution without the baggage of a thick client (traditional native c/s solution). The organizations that had embraced browser based applications but got locked down with IE6, could not go with certain digital features because the browser was not sophisticated and had a limited feature set.
Microsoft Internet Explorer 6 (IE6) was the predominant browser that was used on the Microsoft Windows XP, Microsoft Windows Server 2003 and some other earlier Microsoft Operating Systems. Microsoft Vista was shipped with IE7 which had the option to emulate XP mode. With the release of the Windows 7 editions, the support for XP emulation mode was grandfathered where IE6 was supported. As of April 8, 2014, technical support of XP and XP mode are no longer available by Microsoft. This means that all the patches that are required for the OS stack and above will not be available to support IE6. Yet, some organizations continue to use IE6.
Some of the challenges that we experience in IE6 range from layout issues, performance issues and the likes as described in detail that an organization using IE6 is experiencing.
The support for style sheets is limited and not completely supported. As it stands, CSS2 is not supported any more as the standard. If we were to support such standards, we will have to perform a number of checks, resort to workarounds, and essentially resort to a number of CSS hacks to get to the desired user experience. To handle the workaround related to CSS, there needs to be several strategies CSS selectors, conditional comments and/or use JavaScript to detect IE6. The scripting code needed to just accommodate IE6 will bloat the scripting. This will not be reusable code. Once all users are off IE6 then, there needs to be a separate initiative to decommission IE6 related code.
There are issues with the manner in which the images are handled. We would have to always check for image compatibility for IE6 before we use an image asset. This would mean that either we have to create alternate images for IE6 and/or check to gracefully downgrade the quality of images to accommodate the IE6 issues. Apart from this there are known issues with rounded corners, flickering of images when set in background.
Some of the scripts are known to crash the IE6 browser when executed. This is due to the fact that there is a known overflow bug that is in IE6. There needs to be an extensive set of work to ensure that the scripts used do not introduce these instabilities accidentally. We would have to run through specific tests for IE6 to ensure that the manner in which we are using the scripts does not crash the browser or fail in some specific actions.
There are a several issues with the layouts in IE6, particularly due with the styling. These are issues around the dimension elements, floating styles, the z-property and the truncating of content. Many of these issues have workarounds but will have to be coded per the IE6 workarounds. This will require additional cycles to develop the workarounds.
Another major issue with IE6 is the memory leaks while using JavaScript. This would mean that the developers need to pay close attention in the manner JavaScript will dispose the objects created when the object is released.
Apart from the design and development to support IE6, we will have to ensure that testing is carried out on hardware that supports IE6. We have to commission new hardware as well as procure Windows XP operating systems and licenses to support the testing. Additionally, we will have to set up XP emulation mode for Vista and Windows 7. The current Windows 8/8.1 does not support XP emulation mode.
In order to support IE6 in the new development of an online application will be significant. The design will have to accommodate the nuances of dealing with workarounds for every screen (widget, interaction, look and feel) for each of the responsive design screens. This then needs to translate to development, where the development team needs to ensure all the IE6 issues are addressed. We will have to have additional dedicated members to handle IE6 issues. The challenge is that the designers/developers today have moved on from IE6, their experience in IE6 defensive programming is limited. As we build these new experiences, we will have a number of issues in developing and maintaining this in IE, moving forward. Not to mention, the issues around testing for IE6 requires a different test environment.
The effort for supporting IE6 would mean that the design, development needs to factor work that needs to be performed as a new system. The reuse of assets will be minimal. The unit testing would mean that the designers/developers have access to IE6 and compliant OS. The effort will be an additional 40% to 50%. This is not counting in the infrastructure change to SharePoint, environments to support testing in IE6 and on XP, XP emulation mode. All work done in supporting IE6 is not reusable. When IE6 eventually is retired from your customers, then a separate task to decommission will be required to retire the code. It will be an expense that you will have to justify.
So, it is time you assess the portfolio in your organization using browsers that hold back your digital transformation. Analyze the impact to the business by looking at how it is slowing down the ability of the business to put out new digital functions to the market. Apply reasonable guidance on backward compatibility and do not get caught in need to support versions 5 releases back.
