WEB開発をしてるとたびたび突き当たるのが、IE(Internet Explorer)の問題。

あいつは本当にWEB開発者を悩ませてきた。

IEは最新のWEB標準への対応に難があるのだ。

特に、OSの一部であるIEはアップデートされにくく、古いバージョンのサポートも未だに継続されている点で厄介だったりする。

今回はそんなIEのこれまでの状況と、表題の通り「古い」バージョンのサポート終了についてのニュースを紹介する。

なぜIEはダメなのか

このブログでも散々「IEはクソ」と言い続けてきたが、天下のMicrosoft様がお作りになったソフトが、なぜこのように公然と批判されるのか。

圧倒的なOSシェアを誇るWindowsには当然企業ユーザーも多く、標準ブラウザ(IE)においても「安定性」と「不変性」を求められた。

企業内では社内ネットワーク内の「WEBアプリケーション」がよく使われ、その動作がアップデートによりころころ変わるようでは企業にとって修正などで大きな管理コストとなってしまう。

そこでIEは頻繁なアップデートのかわりに、頻度の低いバージョンアップによって新機能を取り入れ、セキュリティ・アップデートのみを日々のWindows Updateで提供するようにした。

IEの新バージョンは数年から1年に一度提供され、そのたびに多くの新機能や新標準への対応がなされたが、日進月歩のWEB界において、その数年のタイムラグは致命的なものとなった。

FirefoxやChromeなどほかのブラウザは、頻繁なアップデートにより新機能に素早く対応したが、一方で数週間のベータテストを行なっても潰し切れないバグも生まれる。

企業ユーザーにとっては使用ソフトのバージョンを変えるだけでも、さまざまな検証に追われ一苦労となるので、アップデートが少ないIEにはメリットがあった。

さらに、IEは過去のバージョンとの互換性を重視して開発され、その点でもIEは企業ユーザーにやさしかった。

つまり、かなり前に作られた社内WEBアプリケーションが最新バージョンのIEでも動くように留意されていたのだ。

しかし、そんなIEの開発は徐々に行き詰っていくこととなった。

まず、かつてWEB標準が確立されていなかった頃に各ブラウザは独自の機能を多く盛り込んだが、IEではASPやActiveXなどの独自機能を盛り込み、シェアの多さからそれらがある程度「標準」となり、普及してしまった。

またIEのバグやおかしな挙動を「仕様」として実装されたWEBアプリケーションも多数作られてしまった。

そんな仕様との互換性をいつまでも保ち続けるのは難しくなっていき、IEのプログラムのコードは複雑になり、バグの温床にもなり、Microsoftにとっても開発を続けることは負担となった。

一方で、IE独自の機能やHTML・CSSの実装が普及した結果、一般のWEBサイトの多くもWEB標準から外れたり、互換性が悪くなったり、互換性を保つためにWEB開発者に複雑な実装などの負担を強いたりした。

そうして、IEは次第に「諸悪の根源」としてWEB開発者やネットユーザーに忌み嫌われるようになってしまったのだ。

一時はIE=クソブラウザという認識が常識となり、他のブラウザを使用するのが一般的となった時代もあったが、PCおよびネットの普及に伴いそういった知識のない人たち(いわゆる“にわか”)が増えたことにより、現在ではIEの普及率は再び(むしろ以前よりも)高くなっている。

ま、IEを使うことがクソなのではなく、あくまでIEの仕様や実装がクソってことだからね、IEユーザーの方もそんなに悲しまないでよ。

なお、この話題について非常に詳しく解説しているサイトを見つけたので紹介する。

IEブラウザの互換性問題の緩和方法 - とあるコンサルタントのつぶやき - Site Home - MSDN Blogs
(Microsoftの中の人のブログ? やけにぶっちゃけた話をするもんだ……)

ちなみに、Windows 10ではついにMicrosoftもIEを諦め、過去との互換性よりもWEB標準への準拠を重視して刷新された新ブラウザ「Edge」を導入した。

Windows 10でもIE11を利用可能だが、今後はEdgeが標準ブラウザとなる。

逆にWindows 8.1以前のOSではEdgeを利用できない。

「古い」IEのサポート終了へ

Windows XPのサポートが終了した「2014年問題」も今や懐かしい思い出だが、OSの一部であるIEのサポートもOSとともに終了するのだ。

しかし、Windows XPで利用可能なIEのバージョン6〜8のサポートがすべて終了したわけではない。

Windows XPの次のOSであるWindows Vistaの初期IEはバージョン7だったが、Vistaのサポートが続く限りIE7のサポートも継続されるのだ。

Windows VistaではIE単独のバージョンアップによりIE9までインストール可能なのだが、更新していないユーザーもいるためである。

これでは当分古いIEへのサポートを打ち切れない。

これが従来のMicrosoftのサポートポリシーだった。

しかし、Microsoftは米国時間2014年8月7日にこのポリシーを変更し、同2016年1月12日をもって「各OSで利用可能な最新バージョンのIE」以前のバージョンのサポートを打ち切ることになった。
遅報でごめんね。

すなわち、現在サポート中であるWindows VistaではIE9、Windows 7ではIE11、Windows 8ではIE10……ではなくWindows 8.1にアップグレードしたうえでIE11しかサポートされなくなる。

よって、IE7とIE8は完全にサポート終了となる。

俺たちにとっての利点

IEはバージョン9からはましになると言われるが、ついにIE9以降の時代が訪れる!

すでにIE8以前への対応を打ち切っているWEB開発者も多いだろうが、2016年1月からは堂々とIE8以前を切り捨てられるというわけだ。

ちなみに、このサイトではIE6まで(投げやりだが)対応させていた(確認は各最新ブラウザのみ)。

これからIE8以前を切り捨てることで、以下のような利点が得られる。

  • HTML5の新しいタグを、IE8以前に配慮せず使える。
  • CSS3のメディアクエリを使用した「モバイルファースト」なサイトを作りやすくなる。
  • CSSの before/after 擬似要素を使用したWEBフォントの実装に、IE7以前への対策が不要となる。
    • before/after 擬似要素について:IE7は非対応、IE8はシングルコロン“:”の構文に対応、IE9以降はダブルコロン“::”のCSS3の構文にも対応
  • jQueryは古いブラウザを切り捨てるかわりに動作が軽くて安定するバージョン2系を使用できる。
  • 単純に古いブラウザでの動作確認や検証の作業が不要になり、工数が減る。

古いIEへのハックの定番、「条件付きコメント」もこの世から消えていくんかな……

そう考えるとなんだか名残惜し……くないわ! 嬉しいばっかりだぁ!\(^o^)/

終わりに

このブログにも、まれにIE8からのアクセスがあるが、それはほぼWindows XPユーザーによるものだ。

……まだXPユーザーがいるのかよ! いい加減XPでネットに繋ぐのやめろよ!

まあ、そういう人にあーだこーだ言ってもどうにもならないし、きっとIE8を使い続ける人もいるだろうけど、このサイトでは2016年1月以降はIE8以前の面倒は見ないぜ。

いや、動作確認はしてないから、すでにIE8で正常に機能してないかもしれないけどな、このサイト。

MacとかiPhoneでの動作確認もできてないんだよね。

各ブラウザがWEB標準にしっかりと準拠してたら問題ないはずなんだけど。

だってこのサイト、「Wii Uブラウザ」でも実は完璧に動作するんだぜ。

Wii Uブラウザがどんなレンダリングエンジンなのかは知らないけど、意外とやるもんだ。

ということで、やっぱWEB標準って大事だね、って話。