
이러한 방식은 인터넷 익스플로러 뿐만 아니라 다른 브라우저에도 있습니다. 왜냐하면, 이 세상의 모든 웹 페이지가 웹 표준을 따르는 것은 아니기 때문입니다. 따라서 웹 표준을 따르지 않는 페이지도 잘 보이게 하기 위해 이런저런 수를 쓰게 되는데, 그 중 하나가 하위 호환 모드와 웹 표준 모드를 구별하는 것이죠.
그렇다면 브라우저는 현재 페이지를 하위 호환 모드로 렌더링할 것인지, 웹 표준 모드로 렌더링할 것인지 어떻게 판단할까요? 바로 <!DOCTYPE>을 보고 결정합니다. 예를 들어 이 블로그의 경우, 소스 보기를 하면 파일 맨 위에 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"> 이런 식으로 나오는데, 이것이 바로 '웹 표준 모드를 쓰라'는 표시입니다. 인터넷을 돌아다니다 보면, 페이지마다 DOCTYPE이 다른 것을 확인할 수 있습니다. DOCTYPE이 아예 없는 페이지도 있는데, 이럴 경우 하위 호환 모드를 쓰게 되지요.
얼마 전, 마이크로소프트(Microsoft, MS)는 현재 개발 중인 인터넷 익스플로러 8이 Acid2 테스트를 통과한다고 자랑한 바 있습니다. 하지만, 이제 그 말을 조금 수정해야 할지도 모르겠습니다. MS가 IE 8에는 호환 모드, 표준 모드 뿐만 아니라 '초강력 표준 모드'도 있다고 밝혔기 때문입니다.
이것이 무슨 뜻일까요? MS에 따르면 다음과 같습니다.
1. '하위 호환성 모드(Quirks mode)'는 지금처럼 동작합니다.
2. '웹 표준 모드(Standards mode)'는 IE 7하고 동일하게 동작합니다.
3. 정말로 웹 표준을 쓰고 싶은 분을 위해, 페이지 내에 <meta> 태그를 삽입하면, 좀 더 웹 표준에 가깝게 렌더링합니다. '초강력 표준 모드'라고 불러도 되겠군요.
즉, IE 8에서 새로운 웹 표준을 확실하게 쓰고 싶으면 <meta http-equiv="X-UA-Compatible" content="IE=8" /> 라는 메타 태그를 페이지 내에 삽입하라는 것입니다.
...넴?
역시 평소에 하위 호환성을 지키기 위해 노력하는 MS답군요. 결국 IE 8이 Acid2 테스트를 통과한다는 말은 거짓이 되어버렸습니다.
MS의 고충은 이해합니다. 기존에 웹 표준을 고려하지 않고 짜여진 페이지가 엄청나게 많다 보니, 함부로 웹 표준을 적용하면 깨지는 페이지가 많겠지요. IE 6에서 IE 7로 옮기는 데에도, 기존 사이트의 대응이 상당히 필요하지 않았습니까? 그러니까 IE 7에서 IE 8로 가는 데에도 최대한 조심하겠다 이거지요.
하지만 이건 좀 당황스럽군요. 솔직히 모드가 너무 많습니다. 헷갈릴 수도 있겠군요. 게다가, 이제 IE 9 나오면 메타 태그에 content="IE=9" 라도 적어줘야 하는 것인가요?
Acid2 테스트를 넘어서 Acid3 테스트까지 나오고 있는 상황에서, MS의 좀 더 강력한 웹 표준 강제(?) 정책이 필요하지 않나 싶습니다만, 그래도 저는 이 정도로도 만족합니다. 하지만 역시 아쉬운 것은 어쩔 수 없군요.
Beyond DOCTYPE: Web Standards, Forward Compatibility, and IE8
Compatibility and IE8
Mozilla's Quirks Mode
Posted by 랜덤여신

