Yesterday I was in a meeting with my chair and attempted to show him something on the website here. Naturally, he uses Internet Explorer 8, so that's what fell to hand. Unfortunately, all we got was a black page.
I was a bit bewildered and loaded up the administrative URL to see what was going on in Drupal but of course that page was black also.
So we moved on. I assumed it was something about his machine/installation and/or something odd about that particular temporal moment at my hosting provider that would clear itself up.
This morning, however, I needed to share the website address with my students. As an afterthought, I decided to test the site again in IE8 just to be sure. I rebooted into Windows and loaded up the page to see… a black page.
Something wonderful and efficient in my subconscious mind told me to stop being so damned technical and try a different IE8 install, so I went to my wife's computer and loaded the site there.
It worked as usual, no black pages.
A few minutes of clicking around in IE8 menus led to the difference: "compatibility view." Compatibility view was disabled on her machine but enabled on mine. I disabled it on my install of IE8 and all was well again. Funny thing, though, was that I'd had compatibility view on the last several times I logged into the site for testing using IE8 and had no trouble at all.
A bit of research yielded both an answer and a fix.
Answer: Microsoft distributes automatic compatibility view updates for IE8. One of these clearly broke Drupal+Salamander, despite their standards compliance. Grr.
Fix: Add a META tag to the header giving a user agent compatibility hint:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
This basically forces IE8 out of compatibility view mode when the page is loaded. I just stuck it, quick and dirty, into page.tpl.
But once again, IE breaks something without warning, for no reason, despite standards, in a bewildering way, while Firefox, Chrome, and WebKit (Safari/Konq) continue to simply display things correctly from the start.
Don't like being embarrassed when your sites suddenly go dark for IE users? Tell everyone you know how much IE continues to suck, and use META tag hints to dictate a particular rendering engine iteration for IE users.