2

I'm struggling to understand how IE8 Compatibility View works.

Sometimes we find some bugs on IE8 Compatibility View that cannot be found on IE8 and other browsers.

We wrote a message telling the users to change to IE8 if they are in Compatibility View, but that does not seem very user-friendly at all. So, what would be the best way to approach that?

We are wondering if there is a way of forcing IE8 to never go into Compatibility View and without damaging the UX. Will it break the page? Will it damage accessibility?

Are there any other user-friendly solutions?

Cheers!

4
  • 1
    I've used the x-ua-compatible http-equiv attribute to boot people out of compatability mode since IE8, infuriatingly, assumes intranet domains should be compatible view'd, which was a problem for internal sites despite everyone having IE8 or higher. Not sure that fixes manually set compatibility view though.
    – Ben Brocka
    Jan 6, 2014 at 15:41
  • 1
    @BenBrocka, so this will only happen in intranets? Because that is what I said, that the 2% that were using the site in Compatibility Mode were the staff. But I felt it was a hunch, did not feel confident to write that down. Jan 6, 2014 at 16:07
  • If it's being treated link an Intranet (not 100% sure how IE detects that) then yeah that might be the only problem. Here if we accessed the site from customdns/site it would work but www.publicurl.com/site it would work. I don't have stats but I can't imagine compatibility view is over 1% without IE auto applying it.
    – Ben Brocka
    Jan 6, 2014 at 16:21
  • 1
    @BenBrocka: IE determines that based on the rules in the Intranet Security Zone in the preferences (the main default is if the domain name is a single word/computer name). You can see if it's being applied by looking in the bottom right of the window to see if it's being evaluated as being in the "Intranet" zone. Here's an overly technical explanation direct from the Microsoft IE team.
    – Kit Grose
    Jan 6, 2014 at 22:33

1 Answer 1

6

You can use...

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

...to disable compatibility mode (which I loving call "broken mode") and force the user into using the most cutting edge IE rending that their browser has. More tips: https://stackoverflow.com/questions/6348959/how-to-disable-compatibility-view-in-ie

I would encourage you to consider trying to nudge users of old browsers to upgrade. HTML5 Boilerplate adds this line to the top of the body:

    <!--[if lt IE 7]>
        <p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
    <![endif]-->
3
  • Oh does IE edge not break if a new version comes out? I was using IE=9 then it broke with 10
    – Ben Brocka
    Jan 7, 2014 at 22:18
  • There are risks with edge and risks with a specific version. Yes, it's possible that future versions of IE might break your styles or code. But if you set a fixed value for a version of IE, then you risk leaving your users in the past once new versions come out. The solution to both: just keep your site up-to-date (sometimes easier said than done).
    – Luke
    Jan 9, 2014 at 22:20
  • 1
    @Luke FYI the devs have fixed this issue. It seems like it was slightly more complicated than just using the meta. I think this article explains the solution to the problem we had msdn.microsoft.com/en-us/library/cc817573.aspx Cheers! Jan 30, 2014 at 15:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.