Event 1049 - Standards Mode
- Logged Message
- What Is It?
- When Is This Event Logged?
- Example
- Remediation
- Related topics
Logged Message
To adhere to the latest Web standards, Windows Internet Explorer 8 includes an update to the Standards Mode engine. The Standards Mode engine is enabled when a Standards Mode !DOCTYPE declaration is found in the HTML source of a webpage. In Standards Mode, many components that affect the layout and rendering of webpages have been changed, including HTML and Cascading Style Sheets (CSS) interpretation, Document Object Model (DOM) APIs, Microsoft JScript performance and security, and accessibility APIs.
What Is It?
Each major release of Windows Internet Explorer adds features designed to make the browser easier to use, to increase security, and to more closely support industry standards. As Internet Explorer gains features, there is a risk that older websites may not display correctly.
To minimize this risk, Internet Explorer 8 supports a number of document compatibility modes that enable different features and can affect the way content is displayed.
- IE5 (Quirks) mode renders content as if it were displayed by Windows Internet Explorer 7's quirks mode, which is very similar to the way content was displayed in Microsoft Internet Explorer 5.
- IE7 Standards mode renders content as if it were displayed by Internet Explorer 7's standards mode, whether or not the page contains a <!DOCTYPE> directive.
- EmulateIE7 mode tells Internet Explorer to behave as Internet Explorer 7 does without any additional hints as to what the compatibility mode should be. In this case the browser uses the <!DOCTYPE> directive of the webpage to determine how to render content. Standards mode directives are displayed in Internet Explorer 7 standards mode and quirks mode directives are displayed in IE5 mode. Unlike IE7 mode, EmulateIE7 mode respects the <!DOCTYPE> directive.
- IE8 Standards mode provides the highest support available for industry standards, including the W3C Cascading Style Sheets Level 2.1 Specification and the W3C Selectors API, and limited support for the W3C Cascading Style Sheets Level 3 Specification (Working Draft).
- EmulateIE8 mode tells Internet Explorer to use the <!DOCTYPE> directive of the webpage to determine how to render content. Standards mode directives are displayed in IE8 mode and quirks mode directives are displayed in quirks mode.
- Edge mode tells Internet Explorer to display content in the highest mode available. With Internet Explorer 8, this is equivalent to IE8 mode. If a (hypothetical) future release of Internet Explorer supported a higher compatibility mode, pages set to edge mode would appear in the highest mode supported by that version. Those same pages would still appear in IE8 mode when viewed with Internet Explorer 8.
Internet Explorer 8 renders Internet sites in IE8 mode by default (Intranet sites are rendered in EmulateIE7 mode by default). The fact that Internet pages default to standards mode may cause problems for pages that don't explicitly opt in to that mode. A page explicitly opts into standards mode using one of the following techniques:
- Including a metatag in the page that specifies
IE=8
orIE=EmulateIE8
- Configuring the web server to send a compatibility header with the page that specifies
IE=8
orIE=EmulateIE8
In cases where an Internet page hasn't explicitly opted in to IE8 mode, it's prudent to warn the user that their page may have rendering problems. That's what this event does.
When Is This Event Logged?
This event is logged when a page is rendered in standards mode where the page did NOT explicitly opt in to standards mode (for instance, there's not a metatag that specifies an EmulateIE8 mode).
If a page explicitly opts-in to standards mode (for instance, it contains a metatag that indicates IE8 mode), then the event is NOT logged.
Note This event is not logged if the user has the webpage in Compatibility View.
Example
Perform the following steps to see this event logged in the Internet Explorer Compatibility Test Tool:
Create a webpage with the following contents. For this example call it 1049.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <body> <div> <h1>Standards Mode Example</h1> </div> </body> </html>
Install the file in the root directory of the local web server. On a Microsoft Internet Information Services (IIS) server this means putting the file in this directory:
.\wwwroot
Browse to the file:
http://127.0.0.1/1049.html
The page will render in the Internet Zone and in Internet Explorer 8 mode. Since there is no explicit Internet Explorer 8 meta tag or HTTP header the Standards Mode event will be logged.
Remediation
Put a compatibility metatag in the page or add a HTTP Header at site level to explicitly indicate that IE8 mode should be used to render the page.
For example, in an ASP.NET application the following web.config file could be used to set the compatibility header for the corresponding application:
<system.webServer>
<httpProtocol>
<customHeaders>
<clear />
<add name="X-UA-Compatible" value="IE=IE8" />
</customHeaders>
</httpProtocol>
</system.webServer>
Or you may add the meta tag directory to the page:
<meta http-equiv="X-UA-Compatible" content="IE=IE8" />
Note The value of IE
can be IE8
or EmulateIE8
. Both are sufficient to opt-in to IE8 mode.