Browsers

Are you ready? The IE8 Readiness Toolkit has arrived.

Tagged:  

That's right, IE8 Beta 1 is here.

Check out the overview of features, changes, and enhancements as well as a readiness toolkit for developers.

Here are the direct links:

Internet Explorer 8 to Make Standards Mode Default

Tagged:  

If you haven't heard yet Microsoft has announced that Internet Explorer 8 will ship with standards mode as the default method to interpret web sites, instead of quirks mode. They have also announced that IE 8 will have a better standards mode than IE 7. The move is quite an interesting one for Microsoft who has historically had a thought of we are smarter than you, so we will make your web site render how we think it should.

Below is an excerpt from the announcement:

Microsoft's Interoperability Principles and IE8

We’ve decided that IE8 will, by default, interpret web content in the most standards compliant way it can. This decision is a change from what we’ve posted previously.


Why Change?


Microsoft recently published a set of Interoperability Principles. Thinking about IE8’s behavior with these principles in mind, interpreting web content in the most standards compliant way possible is a better thing to do.

We think that acting in accordance with principles is important, and IE8’s default is a demonstration of the interoperability principles in action. While we do not believe any current legal requirements would dictate which rendering mode a browser must use, this step clearly removes this question as a potential legal and regulatory issue. As stated above, we think it’s the better choice.


The rest of this blog post provides context around the different modes, the technical challenge, and what it means going forward.


Modes


Clear terminology around the different modes in IE8 (as well as other browsers) is crucial for the discussion. Wikipedia, as usual, offers a good starting point. The article about “Quirks mode” describes how modern browsers (like IE, Firefox, Safari, and Opera) all have different modes for interpreting the content of a web page: Quirks and Standards. (The article also covers “Almost Standards;” let’s set that one aside for the purpose of this discussion.)


Basically, all the browsers have a “Quirks” mode, call it “Quirks mode", and use it to offer compatibility with pages that pre-date modern standards. All browsers have a “Standards” mode, call it “Standards mode,” and use it to offer a browser’s best implementation of web standards. Each version of each browser has its own Standards mode, because each version of each browser improves on its web standards support. There’s Safari 3’s Standards mode, Firefox 2’s Standards mode, IE6’s Standards mode, and IE7’s Standards mode, and they’re all different. We want to make IE8’s Standards mode much, much better than IE7’s Standards mode.


The Wikipedia article’s explanation of why browsers have modes to begin with is worth looking at closely in this context:

"...the large body of legacy documents which rely on the quirks of older browsers represents an obstacle for browser developers, who wish to improve their support for standardized HTML and CSS, but also wish to maintain backward compatibility with older, non-standardized pages.… To maintain compatibility with the greatest possible number of web pages, modern web browsers are generally developed with multiple rendering modes: in "standards mode" pages are rendered according to the HTML and CSS specifications, while in "quirks mode" attempts are made to emulate the behavior of older browsers."


We decided to keep IE7’s Standards mode available in IE8. Our thinking was that this facility would be helpful as the web moves gradually from the large quantity of legacy content authored around IE7’s behaviors to a new era of much more interoperable and web standards compliant browsers. We based the decision to have an additional mode in IE8 on our experience with feedback from IE7. Specifically, during the transition from IE6 to IE7, many end-users found pages authored for the previous IE version’s Standards mode didn’t work well with the new version’s Standards mode.


The Technical Challenge


One issue we heard repeatedly during the IE7 beta concerned sites that looked fine in IE6 but looked bad in IE7. The reason was that the sites had worked around IE6 issues with content that – when viewed with IE7’s improved Standards mode – looked bad.


As we started work on IE8, we thought that the same thing would happen in the short term: when a site hands IE8 content and asks for Standards mode, that content would expect IE7’s Standards mode and not appear or function correctly. 


In other words, the technical challenge here is how can IE determine whether a site’s content expects IE8’s Standards mode or IE7’s Standards mode? Given how many sites offer IE very different content today, which should IE8 default to?

Our initial thinking for IE8 involved showing pages requesting “Standards” mode in an IE7’s “Standards” mode, and requiring developers to ask for IE8’s actual “Standards” mode separately. We made this decision, informed by discussions with some leading web experts, with compatibility at the top of mind.


In light of the Interoperability Principles, as well as feedback from the community, we’re choosing differently. Now, IE8 will show pages requesting “Standards” mode in IE8’s Standards mode. Developers who want their pages shown using IE8’s “IE7 Standards mode” will need to request that explicitly (using the http header/meta tag approach described here).

You can read the full anouncement here.

It will be interesting to see how well IE 8 and Firefox 3 compare. Of course if you are like me you remember being promised a lot of things in IE 7, such as better JavaScript error detection, which never materialized. Hopefully this move will help IE 8 become closer to Firefox in how it forces better coding practices (we will see).

Firefox 3 Beta 3 Released

Tagged:  

Today, Mozilla released Beta 3 for Firefox 3. This is a developer preview release and is available for testing purposes only.

From Mozilla:

These beta releases are targeted to Web developers and our testing community to gain feedback before advancing to the next stage in the release process. The final version of Firefox 3 will be released when we qualify the product as fully ready for our users. Users of the latest released version of Firefox should not expect their add-ons to work properly with this beta.
...
Firefox 3 Beta 3 includes approximately 1300 individual changes from the previous beta, including fixes for stability, performance, memory usage, platform enhancements and user interface improvements. Many of these improvements were based on community feedback from the previous beta.

Check out the extensive list of features and enhancements found in Firefox 3 Beta 3, the known issues, and frequently asked questions.

Read the full release notes for Firefox 3 Beta 3

Download it here

Cross-Window Messaging

Tagged:  

Over at John Resig's blog, he has posted an interesting article about cross-window messaging. The method is part of the HTML 5 Specifications and is available with Firefox 3.

The new method allows you to access all windows, including iFrames, Frames, Popups and the Current Window. The new call would create a DOM event, in the other window, which allows for messaging between the two windows.

Below is an excerpt from the post.

Obviously communicating in a cross-domain fashion is prone to abuse so there's additional information passed along that can be used to verify the integrity of the message. The full list of properties include:

* .data - A string holding the message passed from the other window.
* .domain - The domain name of the window that sent the message.
* .uri - The full URI for the window that sent the message.
* .source - A reference to the window object of the window that sent the message.

The last property is especially important as it allows for two-way communication to occur between these windows.

Simple Demo>

I've constructed a simple demo that you can try (requires a nightly of Firefox 3) in which you can send a message - through an iframe - to another domain, having the results be received and rendered by it. Thus, this demos consists of two pages: One acting as the sender (on ejohn.org), one acting as the receiver (on dev.jquery.com).

This first page is the sender - it's calling postMessage (sending the textual message) and also holds the iframe within which the receiving window is held.

<iframe src="http://dev.jquery.com/~john/message/" id="iframe"></iframe>
<form id="form">
  <input type="text" id="msg" value="Message to send"/>
  <input type="submit"/>
</form>
<script>
window.onload = function(){
        var win = document.getElementById("iframe").contentWindow;
        document.getElementById("form").onsubmit = function(e){
                win.postMessage( document.getElementById("msg").value );
                e.preventDefault();
        };
};
</script>

The follow page is the receiver - it has an event listener bound which watches for messages being passed to it and injects them in to the DOM.

<b>This iframe is located on dev.jquery.com</b>
<div id="test">Send me a message!</div>
<script>
document.addEventListener("message", function(e){
        document.getElementById("test").textContent =
                e.domain + " said: " + e.data;
}, false);
</script>

You can read the full post here.

This new method could make for some interesting applications. I could see your del.icio.us account sending messages back and forth from your Digg account in two different windows all on the client side. That is of course if the cross domain settings can be worked out.

Will the Real IE Please Stand Up?

Tagged:  

Having read Chris Wilson's (IE Platform Architect) explanation of Microsoft Internet Explorer 8's handling of compatibility modes, you just have to laugh--or cry--in exasperation. After years of almost encouraging sloppy web pages, IE 8 has gotten standards religion, almost. There will now be three (count 'em!) modes in IE:

1. "Quirks" mode. All garbage written for IE 5.5 and older is tolerated.
2. Semi-compatibility mode. Any page with a <DOCTYPE> declaration will provide the not-quite-standards-compliant mode offered in IE 6 and 7.
3. Compliance mode (Bullwinkle: "This time for sure!"). Developers who want the latest in standards compliance, at least those standards that Microsoft wants to support, can use a <meta> tag to tell IE 8 that they want as much standards compliance as they can get. You can read the gory details here.

Does this mean that we will get a new compatibility mode for each new version of IE? Mozilla fans, rejoice! By the time Microsoft gets to version 10, the IE browser is almost guaranteed to die under the weight of its own bloat; I mean Windows Vista will run faster on a 486! People will leave en masse to another browser just to get decent responsiveness. Which will, ironically, finally ensure that the Web does have a chance at becoming unified under a cohesive set of standards.

Will Internet Explorer 8 Pass the Acid2 and Acid3 Tests?

Tagged:  

Over at CNET's News.com they have posted an interesting story about if Internet Explorer 8 will pass the Acid2 and Acid3 test. The Acid tests are design to make it possible for web developers to create web sites that comply to standards so that they know that the design will be cross browser compliant.

Below is an excerpt from the post.

What will happen when you type http://webstandards.org/acid2 in your freshly installed IE 8? Will Acid2 be displayed correctly when you hit the test button?

Microsoft has been asked that question, but it has not given an answer. I think that the company is considering three possible scenarios.

One scenario could be that IE 8 will require users or authors to "opt in" to support standards. For example, in order to render Acid2 correctly, users could be required to modify IE 8's default settings. This breaks with the guidelines of the test, and IE 8 will therefore not pass in this scenario.

A second scenario could be that Microsoft requires Web pages to change the default settings by flagging that they really, really want to be rendered correctly. Web pages already have a way to say this (called "doctype switching," which is supported by all browsers), but Microsoft has all but announced that IE 8 will support yet another scheme.

If it decides to implement the new scheme, the Acid2 test--and all the other pages that use doctype switching--will not be rendered correctly.

A third scenario could be to hard-code the Web address of Acid2 into IE 8. This way, the page is given special treatment to make it look like the browser is passing the test. It should be obvious that this breaks the spirit of the test and doesn't warrant a passing grade.

I predict that Microsoft will implement at least one of these scenarios to limit the impact of standards. This would be damaging for the Web, and I therefore hope that my prediction is completely and absolutely wrong. The IE 8 team has shown that it can render Acid2 correctly. Now it's time for Microsoft to put its code to good use.

Read the full post here.

Hopefully Microsoft will get IE 8 to render Acid2 and Acid3 correctly for the good of the web (although, it won't make me change from Firefox).

As always we would love to hear your thoughts on this or any web related technologies. If you have something to say you can blog about it on this blog once you create a free account (once logged in just click on "Create content" => "Blog entry" and then blog).

Acid 3 Test on the Horizon

Tagged:  

You may be familiar with the Acid 2 Browser Test, but the news is that an Acid 3 test in the works. Announced earlier today on John Resig's blog, a new Acid test is being created and a pre-pre-pre-alpha development version is available here

Here's an excerpt from John's post:

Traditionally, the Acid test has served as a way to get browser vendors in line by testing them on really-annoying edge cases. This can, sometimes, get people tied up in knots but it actually serves as a devious way of getting people to meet a large part of a spec.

For example, in order for a browser to have some weird padding/margin test case solved - in CSS - they must also have a working box model. So while an Acid test may not, explicitly, test for a working box model, it will be done implicitly (by testing edge cases that result from it).

With that in mind, it's time to take a look at Acid 3 which primarily focuses on technology that I find to be interesting: ECMAScript and the DOM.

Go read the full post for more information and to see just how badly the major browsers perfom on the test!

I went ahead and submitted the Acid 3 test url to browsershots.org and ran it through a few different browsers/operating systems, you can check the results here.

Fix your IE6 Transparent PNG Issue and More with IE7.js

Dean Edwards has published an IE7 JavaScript library to make Microsoft Internet Explorer behave like a standards-compliant browser. It fixes many HTML and CSS issues and makes transparent PNG work correctly under IE5 and IE6.

Usage

IE7.js
Upgrade MSIE5-6 to be compatible with MSIE7.
<!--[if lt IE 7]>
<script src="http://ie7-js.googlecode.com/svn/version/xx.x/IE7.js" type="text/javascript"></script>
<![endif]-->

IE8.js
Upgrade MSIE5-7 with advanced CSS features missing from MSIE7.
<!--[if lt IE 8]>
<script src="http://ie7-js.googlecode.com/svn/version/xx.x/IE8.js" type="text/javascript"></script>
<![endif]-->

Note: You do not need to include IE7.js if you are using IE8.js

PNG Note: The script only fixes images named: *-trans.png

Download
http://ie7-js.googlecode.com/svn/version/

Demo
http://ie7-js.googlecode.com/svn/test/index.html

John Lilly named as Mozilla's new CEO

Tagged:  

Mozilla Corporation, makers of the wonderful open source Firefox browsers (they do make other browsers as well) has just named John Lilly as their new CEO.

Below is an excerpt from Michell Baker's blog announcing the new change.

As a result I've asked John to take on the role of CEO of the Mozilla Corporation, and John has agreed. In reality John and I have been unconsciously moving towards this change for some time, as John has been providing more and more organizational leadership. It is very Mozilla-like to acknowledge the scope of someone's role after he or she has been doing it for a while, and this is a good part of what is happening here. I expect this transition to continue to be very smooth.

I will remain an active and integral part of MoCo. I've been involved in shipping Mozilla products since the dawn of time, and have no intention of distancing myself from our products or MoCo. I'll remain both as the Chairman of the Board and as an employee. My focus will shift towards the kinds of activities described above, but I'll remain deeply engaged in MoCo activities. I don't currently plan to create a new title. I have plenty of Mozilla titles already: Chairman of the Mozilla Foundation, Chairman of the Mozilla Corporation, Chief Lizard Wrangler of the project. More importantly, I hope to provide leadership in new initiatives because they are worthwhile, separate from any particular title. We will probably create an Office of the Chairman with a small set of people to work on these initiatives. I intend to remain deeply involved with MoCo precisely because I remain focused on our products and what we can accomplish within the industry.

There will be some differences with this change of roles. Most notably:

  • John's role in products and organization will become more visible to the world as he becomes more of a public voice for MoCo activities.
  • Today-- in theory at least-- John provides advice to me for a range of decisions for which I am responsible. In the future I'll provide input to John and he'll be responsible for making MoCo an effective organization. I expect to provide advice on a subset of topics and thus reduce the duplication of work. On the other hand, I also expect to be quite vocal on the topics I care about most. John and I agree on most things these days, but that doesn't stop me from being vocal :-)

I'm thrilled with this development, both with John's new role and with mine. If you've got thoughts on the kinds of projects I want to set in motion, I'm eager to hear them. And don't be surprised if you see the Mozilla Corporation doing more faster-- that's a part of the goal. We're all committed to doing things in a Mozilla style and you should expect to see that continue to shine through all that we do, whether it's shipping product or developing a new initiative.

You can read the full post at Mitchell's blog.

There should be little visible changes other than the obvious title changes. Lilly will become the spokesperson for Mozilla's activities and Mitchell will be the point woman on the new focus in the world of security standards. Hopefully the Mozilla products will continue to thrive through this change.

Internet Explorer 8 Passes Acid2 Test

Tagged:  

Well, it's time for the devil to grab a warm jacket. According to the IEBlog, IE 8 passes the Acid2 test, an important and rigorous measurement of web standards compliance. Both IE 7 and Mozilla 2.0.x fail the Acid2 test.

This is what the Acid2 test looks like on Firefox 2.0.0.11:

It looks much worse on IE 7. Don't let the apparent simplicity of the Acid2 test fool you. It is a very complex page that extensively uses CSS positioning, CSS tables, overlapping content, and even illegal CSS that should be ignored. See an explanation for details.

The latest salvo in the new browser wars?

Update: Firefox 3 passed the Acid2 test as of the 12/08/2006 build (trunk).

Syndicate content