Internet Explorer 6.0 Delivers Both Enhancements and Challenges

By Peter A. Bromberg, Ph.D.

Peter Bromberg  

Microsoft® Internet Explorer 6 supports CSS features that earlier versions of Internet Explorer do not support. Two additional CSS properties are supported—min-height and word-spacing. Several additional possible values are supported, including the pre value of the white-space property and the list-item value of the display property. Other significant features include stricter parsing of style sheets and changing which HTML elements can represent the outermost surface onto which a document's content can be rendered.



These enhancements were made to comply with the CSS specification. All of the properties, values, and features defined in the CSS, Level 1 (CSS1) specification are supported, including the box model that defines how to measure and format elements and their associated margin, border, and padding properties.

Among the many improvements in this version, three items stand out:

  • Personal Bar
  • Privacy enhancements
  • Standards support

The Personal Bar brings a new level of personalization and convenience to Web browsing. The privacy enhancements in Internet Explorer 6 Public Preview provide the end user with control over how cookies can be used in collecting information. And with this release, Internet Explorer 6 Public Preview rounds off its standards support of CSS level 1 and DOM level 1, as well as enhancing support for HTML 4.0—all recommendations from the World Wide Web Consortium (W3C).

A feature with perhaps the broadest appeal, the Personal Bar enables end users to integrate functionality with their Web browsing experience. Regardless of whether it is configured to present the user's contact list, latest news, or even shopping information, the Personal Bar is always within quick reach and unobtrusive. A number of Explorer Bars come pre-configured, and more can be downloaded and installed. Some sites will likely deploy custom bars that provide user assistance, news, and other information. In a corporate intranet setting, custom bars can display essential business or institutional data.

Developing Personal Bar content

Internet Explorer 6 Public Preview makes it possible for developers to write custom Explorer Bars in HTML. Your content can “listen” to navigation events in the main document, as well as access the object model of the main document. As a developer, you could build bars that provide separate content, such as information to be used for customer support on your site. Alternatively, you could develop bars that enhance the material in the main document—for example, you might develop a document validator for use by other developers.

Corporate developers will find that custom Explorer Bars can provide shortcuts for key corporate sites, document tracking, or even quick access to the corporate address book. Corporations can rely on the Internet Explorer Administrators Kit (IEAK) to deploy customized versions of Internet Explorer that incorporate their in-house custom bars.

Image Toolbar

As a content developer, you can tag images so that the Image Toolbar does not appear when end users move the pointer over them. This tagging provides you with more control over the end-user experience on your site. As with previous versions of Internet Explorer, end users can still right-click images to save or print them, as well as send them through e-mail.

Smart tags

You can develop custom recognizers and actions for Smart Tags using the Microsoft Office XP Smart Tag SDK.

Windows XP user interface support

When running on Windows XP, Internet Explorer 6 Public Preview sports a look and feel that matches the Windows XP platform. You can opt to have your HTML content take on the same look as the operating system for elements such as buttons and scroll bars. This is particularly useful for cases in which HTML content provides user interface elements or content within applications. To incorporate the look of Windows XP in your HTML content, add the following META tag:

<META HTTP-EQUIV="MSThemeCompatible" Content="Yes">

Mouse wheel events

Internet Explorer 6 Public Preview introduces a new set of events related to the use of the mouse wheel. These events enable your content or application to better react to user input.

XML

Internet Explorer 6 Public Preview includes support for MSXML 3.0, providing better performance and up-to-date XML standards support.

.NET integration—The WebService behavior The WebService behavior makes integration of server and client side code easier, and enables applications to call functions on the server asynchronously. You can use this behavior to avoid page navigations and to retrieve data from the server using XML and SOAP. Personally, my experience with using the WebService behavior indicates that while it is promising, it still needs some work.

Switch Me On?

You switch on standards-compliant mode by including the !DOCTYPE declaration at the top of your document, specifying a valid Label in the declaration, and in some cases, specifying the Definition and/or URL. The Label specifies the unique name of the DTD, and can be appended with the version number of the DTD. The Definition specifies the definition of the DTD that is specified in the Label. The URL specifies the location of the DTD. To allow for the creation of new DTDs, such as MyCoolDTD 1.02, standards-compliant mode is switched on when the !DOCTYPE declaration is not recognized. Standards-compliant mode is also switched on when you specify a version of HTML that is not in the officially supported list from Microsoft, such as HTML 1.0 or HTML 3.22.

With Internet Explorer 6 , when you use the !DOCTYPE declaration to switch on standards-compliant mode, in the "Box model" the width and height properties specify the distance between the left and right edges and top and bottom edges of the bounding box, respectively. The border and padding belts are not included. The CSS1 box model defines content inside an HTML element as being surrounded by an invisible rectangular bounding box. Surrounding this bounding box are three rectangular belts, represented by the margin, border, and padding properties. You can use style sheets to manipulate the dimensions and appearance of the bounding box and the belts surrounding it.

In earlier versions of Internet Explorer, the BODY element represents the canvas—the entire surface onto which a document's content can be rendered. The size of the BODY element cannot be changed and equals the size of the window. Margins you set on this element are rendered inside the border and scroll bars of the element.

As of Internet Explorer 6 Public Preview, when you use the !DOCTYPE declaration to switch on standards-compliant mode, the BODY element can obtain its size from its content, or you can set its size explicitly—like a DIV object, for example. In standards-compliant mode, the HTML element represents the canvas.

When you switch on standards-compliant mode, the HTML element also becomes the positioning container for positioned elements that don't have a positioned parent. When standards-compliant mode is switched off, as with earlier versions of Internet Explorer, an absolutely positioned element is positioned relative to the BODY when there is no positioned parent. When standards-compliant mode is switched off, as with earlier versions of Internet Explorer, the BODY element represents the canvas.

There is additional support for scrollbar behavior and backgrounds - both for the HTML and the BODY elements. Two new properties, "min-height" and "word-spacing" ( on the Macintosh) provide additional control over table elements and content.

With one exception, only C language comments are permitted with Internet Explorer 6 Public Preview or later when you use the !DOCTYPE declaration in your document to switch on standards-compliant mode. The exception is that you can enclose the style sheet rules in an HTML comment. Style sheets can be enclosed within an HTML comment block so that downlevel browsers do not display the text in the style sheet. The following example demonstrates the only acceptable use of HTML comments inside an embedded style sheet:

<style>
<!--
/* begin rules */
H1.blue { background-color:blue }
.
/* end rules */
-->
</style>

Unrecognized Tokens in Shorthand Properties

According to CSS1, when there is an unrecognized token in a shorthand property, the entire shorthand property setting is ignored. For example, "text-decoration: underline cross-out" is ignored because "cross-out" is not a recognized value for the text-decoration property. The text is not even underlined.

With earlier versions of Internet Explorer, the declaration is parsed up to the first unrecognized value. So "text-decoration: underline cross-out overline" causes the text to be underlined, but not overlined. This affects the following properties: font, background, background-position, text-decoration, margin, padding, border, border-top, border-right, border-bottom, border-left, border-left-color, border-width, border-style, list-style-image, list-style, clip, behavior, text-autospace, and layout-grid.

Character Escaping

According to CSS1, you can use the backslash (\) as an escape character. This removes any special meaning from the character that follows it. For example, you can escape the quote character like this:

STYLE="font-family:'Rachel\'s font'"

You can also use hex values to escape Unicode characters. For example, "\0009" is the escape for a tab character.

There are a number of other items that will affect the way pages are rendered. Most of these are similar to the ones I've summarized above, and revolve primarily around the concept of stricter adherence to the W3C CSS1 standard.

Switch compatibility mode on or off

When Internet Explorer 6 Public Preview or later is not in standards-compliant mode, it is in compatibility mode. If you developed applications for earlier versions of Internet Explorer and you want the applications to render the same way on Internet Explorer 6 Public Preview or later, make sure the !DOCTYPE declaration doesn't switch on standards-compliant mode.

In standards-compliant mode, compatibility with other versions of Internet Explorer is not guaranteed. When standards-compliant mode is switched on, the rendering behavior of documents might differ in future versions of Internet Explorer. You should not use this mode for content that is fixed in nature, such as content that is stored on a CD.

Thou Shalt Watch Thy Cookies

Microsoft® Internet Explorer 6 requires changes in how Web services use cookies. In many cases, the privacy features of Internet Explorer 6 require Web services to deploy compact policies as defined by the Platform for Privacy Preferences (P3P) Project developed by the World Wide Web Consortium (W3C).

The privacy features of Internet Explorer 6 focus on advanced cookie filtering as Microsoft's "major step" toward empowering users to protect their privacy. Although solving the cookie problem is not a panacea, it is Microsoft's position that it's an industry-leading step in addressing consumer anxiety over online profiling.

Advanced cookie filtering works by evaluating a Web site's privacy practices and deciding which cookies are appropriate based on the site's compact policies and the user's own preferences. In the default settings, cookies that relate to personally identifiable information and do not allow users a choice in their use are considered "unsatisfactory." By default, unsatisfactory cookies in the first-party context are deleted when the browsing session ends and rejected in the third-party context. In this way, users can retain the personalization benefits of cookies, while protecting themselves from unsatisfactory cookies. The full details of cookie filtering are too broad for this article, but I'll try to summarize them below:

The Internet Explorer 6 technology for understanding a Web site's privacy policy is built upon the P3P Specification. Using Extensible Markup Language (XML), P3P provides a common vocabulary and syntax that allows Web sites to communicate their privacy practices to Internet Explorer 6 (or any other user agent). Internet Explorer 6 can then inform users of what is happening behind the scenes and assist them by filtering out unsatisfactory cookies, while still taking advantage of innocuous cookies.

Users can easily adjust the cooking filtering sensitivity of Internet Explorer 6 by using a slider interface with six preset levels. Cookie filtering can also be fully customized in the following ways:
  • Accept or deny cookies from specific Web sites
  • Import custom cookie filtering settings from third parties
  • Enable advanced controls for other cookie option

First- and Third-Party Context

There is a window of opportunity right now for developers and consultants who are smart enough to take the lead in studying the P3P privacy protection scheme. I'll get into that shortly. Internet Explorer 6 defines first-party content as that associated with the host domain. Third-party content originates from any other domain. For example, suppose a user visits www.wideworldimporters.com by typing this URL in the address bar, and www.wingtiptoys.com has a banner ad on this page. If these two sites set cookies, the cookies from www.wideworldimporters.com are in a first-party context while the cookies from www.wingtiptoys.com are in a third-party context.

Often commercial Web pages are an amalgamation of first- and third-party content. The Internet Explorer 6 privacy features distinguish between first- and third-party content. The underlying assumption is that the user has a different relationship with first parties than with third parties. In fact, users might not be aware of the third party or be given a choice in having a relationship with it. For this reason, default privacy settings for third parties are more stringent than for first parties.
Note The URLs www.wideworldimporters.com and toys.wideworldimporters.com, both contain the same minimal domain, wideworldimporters.com. Content that shares the same minimal domain as the host domain is considered first-party content. Likewise, cookies set from these domains are considered first-party cookies. Minimal domains must have the same Top Level Domain (TLD). Some common examples of TLDs are .com, .net and .org.

Note that under this new security scheme, If a user visits www.wideworldimporters.com over a secure connection using Secure Hypertext Transfer Protocol (HTTPS), content on the page that is not using HTTPS is considered third-party content.

P3P and Compact Policies

The P3P specification standardizes the way Web sites summarize and represent policy information regarding their privacy practices. P3P policies are composed of XML statements that describe the data categories, purposes of data collection, and recipients of the data collected. P3P policies also contain other information, such as whom to contact for privacy-related disputes, the lifetime of the privacy policy, how a user can access the data collected, and what remedies can be taken for policy breaches. Different P3P policies can be specified for different aspects of a Web service. For example, a Web site can have different policies for its home page and its search page.

Here is an example of a typical P3P - compliant "P3P policy statement" :

<POLICY xmlns="http://www.w3.org/2000/12/P3Pv1"
discuri="http://www.blueyonderairlines.com/ourprivacypolicy.html"
opturi="http://www.blueyonderairlines.com/optin.html">
<ENTITY>
<DATA-GROUP>
<DATA ref="#business.name">Blue Yonder Airlines</DATA>
<DATA ref="#business.contact-info.postal.street">3456 Main St.</DATA>
<DATA ref="#business.contact-info.postal.city">Tampa</DATA>
<DATA ref="#business.contact-info.postal.stateprov">Fl</DATA>
<DATA ref="#business.contact-info.postal.postalcode">77062</DATA>
<DATA ref="#business.contact-info.postal.country">USA</DATA>
<DATA ref="#business.contact-info.online.email">molly@blueyonderairlines.com</DATA>
<DATA ref="#business.contact-info.telecom.telephone.intcode">1</DATA>
<DATA ref="#business.contact-info.telecom.telephone.loccode">800</DATA>
<DATA ref="#business.contact-info.telecom.telephone.number">5550158</DATA>
</DATA-GROUP>
</ENTITY>
<ACCESS><contact-and-other/></ACCESS>
<STATEMENT>
<PURPOSE><pseudo-analysis/></PURPOSE>
<RECIPIENT><other-recipient/></RECIPIENT>
<DATA-GROUP>
<DATA ref="#user.home-info.postal">
<CATEGORIES><demographic/></CATEGORIES>
</DATA>
</DATA-GROUP>
</STATEMENT>
<STATEMENT>
<PURPOSE><contact required="opt-in"/></PURPOSE>
<RECIPIENT><ours/></RECIPIENT>
<DATA-GROUP>
<DATA ref="#user.home-info.online.email">
<CATEGORIES><online/></CATEGORIES>
</DATA>
</DATA-GROUP>
</STATEMENT>
</POLICY>



For each statement element, the category, purpose, and recipient element each have an associated compact form. The access element also has a compact form. The table below shows the compact tokens associated with each of the elements in this example.

Privacy Tags and Corresponding Compact Tokens

Privacy tag Compact token
<contact-and-other/> CAO
<pseudo-analysis/> PSA
<contact required="opt-in"/> CONi
<other-recipient/> OTR
<ours/> OUR
<demographic/> DEM
<online/> ONL

We can form a compact policy for this example by aggregating these purpose, recipient, category, and access tokens. Compact policies are sent using a custom HTTP response header using the syntax shown in the following example.

P3P: CP = "CAO PSA CONi OTR OUR DEM ONL"

This header can be added to an HTTP response using Active Server Pages (ASP) or through the computer management console on Microsoft� Windows� 2000 server. It is important to note that cookie compact policies are sent from the server along with the cookie data on HTTP responses, while decisions and settings regarding cookies are made on the client (Internet Explorer 6).

The cookie filtering of Internet Explorer 6 does not make use of full P3P policies. Compact policies are required for all cookies. Cookies set through script or the meta element are governed by the compact policies on the associated HTTP response. Cookies without a compact policy are regarded by Internet Explorer 6 as not having a policy.

For those who are ready to try their hand at P3P, Microsoft have a P3P policy wizard you can use at http://www.microsoft.com/privacy/wizard/ and the W3C has a useful P3P "validator" page at: http://www.w3.org/P3P/validator/20001215/. Note that as of this writing, the W3C page may find some errors in Microsoft's implementation. Also, be advised that all this P3P stuff is not firmed up yet, so you may have to change some of it. But, in general, I would recommend that developers and web site operators get started now with the required P3P.XML and POLICY.XML files, as well as adding the required response header for compact policy. If you need an example to get started, run our https://www.nullskull.com site through the validator. It's P3P compliant.

Opt-in, Opt-out, Always

The purpose and recipient tags of a P3P policy have an optional attribute that can take the value of "opt-in,", "opt-out," or "always." The use of "opt-in" denotes that users must approve the purpose of use or recipient of the data. The use of "opt-out" denotes that data is used for the purpose or recipient specified unless the user chooses not to allow it�that is, the user opts out. Using "always" indicates that the purpose or recipient is always required. This attribute is abbreviated by a single letter and appended to the token. In our example, the "i" appended to the CON token indicates that users have to "opt-in" to have their online information used for contact purposes ("always" is abbreviated as "a" and "opt-out" as "o"). Always ("a") is the default value, so tokens which do not specify a value are handled in the same way as tokens with an "a". For example, FIN and FINa represent the same token.

The documentation available for the Public Previeww of IE 6.0 has a much more extensive treatment of unsatisfactory cookie tags, compact tokens as shown above, Internet Explorer 6.0 privacy settings and cookie filtering in the various security zones. During the Public Preview's life, there are three privacy preference levels: Low, Medium, and High.

The Medium level is selected by default and works as follows:

  • Cookies with no associated compact policy are rejected in the third-party context.
  • Cookies with an associated compact policy are accepted in the third-party context regardless of the content of the policy.
  • Cookies in the first-party context are accepted regardless of the presence of a compact policy.
  • The Low level accepts all cookies.

The content of the compact policy is not considered in the third-party context. What is important is the presence of the compact policy. P3P allows for a TST token to be used in compact policies for testing purposes. So using the header P3P: CP = "TST" will be sufficient for third-party cookies to be accepted.

In the release version of Internet Explorer 6, compact policies containing the TST token will be ignored and the corresponding cookies will be treated as if there is no compact policy. So, if you run, maintain or develop sites where there is a concern for these standards and wish to provide P3P -compliant cookies and header transmissions, the message from the gurus at Redmond is that you better get cracking -- like, NOW. It's quite likely that users will not keep moving the privacy preferences slider down to "low" just for you. At eggheadcafe.com as of this writing (late May, 2001) up to ten percent of our visitors are already using Internet Explorer 6.0!

To continue the successful deployment of cookies for use with Internet Explorer 6 or its public preview, the best thing to do is deploy P3P on your site. This involves first assessing your business practices and then forming a comprehensive policy. Visit the P3P Project Web site and take advantage of the tools and resources. Many cookies without compact policies will be rejected by default, so deploying P3P with compact policies is critical for maintaining your Web services. The folks at Microsoft have "bit the bullet" and taken the firm stance that addressing Internet privacy is the responsibility of the entire industry, and that now is the time to take steps toward these sensible, interoperable solutions.

Summary

The W3C has had most of the policies and standards shown here in effect for quite some time. I think what is important to understand is that when a major player of the stature and market position of Microsoft "buys in" and takes a standards - compliant position, this can have a significant effect on the industry as a whole.The P3P scheme is not easy to understand, and people who become experts in this area quickly will be able to charge web site owners many thousands of dollars in consulting fees to help them develop and implement P3P policies that will protect and enhance their investments in the successful operation of their sites.

 

Peter Bromberg is an independent consultant specializing in distributed .NET solutionsa Senior Programmer /Analyst at in Orlando and a co-developer of the NullSkull.com developer website. He can be reached at info@eggheadcafe.com