This blog post describes how to perform basic web application testing to identify and fix compatibility issues. These procedures are designed for non-experts and not to require deep expertise in web application development. The target platform is assumed to be Internet Explorer 8 running on Windows 7 with standard user rights. Some of the issues covered below assume that the target platform has the US Government Configuration Baseline (USGCB) applied.
The test procedure is simply to log on to a Windows 7 computer, browse to a site to be tested, interact with the site and verify whether it behaves according to its specification. If the site appears to work correctly, good! Move on to the next one! If the site does not work as expected, review the list of issues below for matching symptoms.
Each issue listed includes a description, symptoms, workarounds during test/triage, and potential solutions, in the table format shown below. Review this example table first to understand the meaning of each of the table fields.
Description
A description of the underlying cause of the issue.
Symptoms
One or more symptoms that may appear if this issue is occurring.
Workarounds during test/triage
Temporary workarounds that can be used during testing. The purposes of these workarounds are: 1) to verify the root cause; 2) to temporarily get around the problem so that other features of the app can be tested. Note that it is only to be used during testing, not in production.
Potential solutions
Solutions that may be used in production.
A list of references follows the Issues section. The references explain Internet Explorer compatibility issues, such as the !DOCTYPE element that describes what version of web standards the site was designed for.
ActiveX required by web app isn’t present, and cannot be installed via a standard user’s browser.
Square with red X in upper left;
Page content not fully shown, not active, nothing the user can do;
ActiveX prompts.
Log in as an administrator (or launch IE elevated) and install the ActiveX). This may require removing policies blocking ActiveX installation.
Install the ActiveX through means other than with the browser (e.g., a standalone installer, or copy the control to the computer and run regsvr32 on it.)
Pre-install into the image;
Deploy with app deployment solution (e.g., SCCM);
ActiveX Installer Service
Web app fails when run in IE Protected Mode
Failure of ActiveX or Java while in the Internet zone
Ensure that the site is in Intranet (for internal apps) or Trusted Sites (for external apps). How to: if policy allows, use the IE security zone dialog (not allowed in USGCB configuration); otherwise, use Site To Zone Assignment List in Group Policy.
Ensure that the site is in Intranet (for internal apps) or Trusted Sites (for external apps). Site To Zone Assignment List in Group Policy.
Layout of web page is incorrect; looked good in earlier versions
Layout is incorrect
Click the Compatibility button to render in IE7 compatible mode. If that doesn’t work, press F12 to display Developer Tools and then Alt+Q to render in Quirks mode (if not already in Quirks). If that doesn’t work, look for conditional comments in the source (including in the CSS).
Remove !DOCTYPE element and/or add X-UA-Compatible meta-tag or header to pages; update the content to be compliant with web standards as supported by the chosen rendering engine
Application targets a specific version of Internet Explorer, and fails when it encounters a newer version number
“Unsupported version” error message;
page interactivity missing;
page missing styling
Compatibility view (when site supports IE7);
User Agent String utility;
manually modifying the page to modify version vectors
Compatibility view; modifying the web page source.
Requirement for FIPS crypto causes web app to fail. FIPS is one of the settings mandated by USGCB.
“Internet Explorer cannot display the webpage” on an HTTPS site.
Verify with wfetch; failure shows “The client and server cannot communicate, because they do not possess a common algorithm”.
(Example site: https://tmn.sun.com)
Turn off FIPS setting, close all browsers, test again.
Turn off FIPS setting, or get the site owner to upgrade to TLS.
Web server allows only SSL 2.0, which is disabled by default in IE8.
Failure to connect to an HTTPS site and FIPS not enabled. Verify connectivity by using wfetch and specifying SSL 2.0.
Enable SSL 2.0 (Advanced page) and turn off FIPS crypto.
Get the site to upgrade to a modern protocol.
Java Permissions setting prevents Java from running in the web page.
Gold bar, “An add-on for this website failed to run. Check the security settings in Internet Options for potential conflicts.”
Ensure that the site is in the Intranet (for internal) or Trusted Sites (for external) zones, and ensure that the correct Java Permissions setting (“High safety”) is applied to that zone.
Java app developers write the app to depend on a specific version of Java.
“Unsupported version” error messages;
Incorrect behavior (which can vary based on the changes between Java versions);
Assertions from the developers that a specific JRE is required
Install “required” version of the JRE (note that there are versions of 1.4, 5.0 and 6.0 that are compatible with Windows 7, but only the 6.0 line is currently supported)
Update the Java app not to depend on a specific Java version, and teach the Java devs to write forward-compatible software.
Java app uses JInitiator, which is no longer supported and which doesn’t work well on Windows 7.
App requires JInitiator
None
According to Oracle, the latest Sun JRE obviates the need for JInitiator. Oracle recommends migrating JInitiator clients to Sun JRE.
ActiveX or Java app is coded with hardcoded dependencies on legacy behavior, such as the web browser having full admin rights, or expecting certain folder names on the browser’s host system.
ActiveX or Java runs incorrectly
Run browser with admin rights (note that for testing purposes the computer should be reimaged afterwards)
Update the mobile code and/or the web application to remove the legacy dependency
IECTT, Event 1049 - Standards Mode:http://msdn.microsoft.com/en-us/library/dd565650(v=VS.85).aspx
IE=EmulateIE7http://blogs.msdn.com/b/ie/archive/2008/06/10/introducing-ie-emulateie7.aspx
KB 968499, “Advanced solutions: Some Web sites may not be displayed correctly or work correctly in Windows Internet Explorer 8” describes some Group Policy settings to control IE7 compatibility viewhttp://support.microsoft.com/kb/968499
IE’s Compatibility Features for Site Developershttp://blogs.msdn.com/b/ie/archive/2010/06/16/ie-s-compatibility-features-for-site-developers.aspx
How IE8 Determines Document Modehttp://blogs.msdn.com/b/ie/archive/2010/03/02/how-ie8-determines-document-mode.aspx
Testing Browser and Document Compatibility Modes with the Developer Toolshttp://msdn.microsoft.com/en-us/library/dd565624(v=VS.85).aspx
Defining Document Compatibilityhttp://msdn.microsoft.com/en-us/library/cc288325(VS.85).aspx#DCModes
!DOCTYPE documentationhttp://msdn.microsoft.com/en-us/library/ms535242(VS.85).aspx
Http-equiv documentationhttp://msdn.microsoft.com/en-us/library/ms533876(v=VS.85).aspx
Conditional comments documentationhttp://msdn.microsoft.com/en-us/library/ms537512(v=VS.85).aspx
Developer Tools User Interface Referencehttp://msdn.microsoft.com/en-us/library/dd565626(VS.85).aspx
Quirks mode (Wikipedia)http://en.wikipedia.org/wiki/Quirks_mode
Chris Jackson blogs frequently about application compatibility; these articles cover IE8 compatibility:http://blogs.msdn.com/b/cjacks/archive/tags/internet+explorer+8/