Web Devout tidings


Archive for the 'Browsers' Category

Firefox reflow branch reportedly passes Acid2 test

Wednesday, April 12th, 2006

The Gecko reflow branch, being developed by David Baron to significantly improve fundamental aspects of the rendering engine in Mozilla browsers, now reportedly passes the Acid2 test.

The Acid2 test was developed by the Web Standards Project (WaSP) as a way to demonstrate some inconsistencies major browsers have with literal interpretations of the standards. It covers a wide range of HTML and CSS features, including the box model, selectors, objects, strict CSS and comment parsing, CSS display values, generated content, and more. Although it only covers relatively small portions of the standards, it was designed specifically to illustrate some bugs in every major web browser.

Throughout April 2005, Dave Hyatt focused on getting the Safari web browser to pass the Acid2 test, and succeeded by the end of the month, making Safari the first major web browser to render the Acid2 test correctly in its internal developmental builds. By June 2005, Macintosh browser iCab passed the test, followed by the Konqueror browser for Linux. In December, the Prince XML file converter passed the test, and in March 2006, a technical preview of Opera 9 succeeded in passing it.

Now, developmental builds of Firefox join the list of browsers that pass the test. The reflow branch, which has received those last fixes, will eventually merge with the trunk to premier in Firefox 3.0, currently planned for release in 2007. The upcoming Firefox 2.0 will not have any webpage layout engine changes, but will focus solely on user interface improvements instead. The layout engine changes, including the move to the Cairo graphics backend, are very significant and will require more time for testing, so they will all be incorporated in the Firefox 3.0 release.

The only major remaining graphical browser that doesn’t pass the Acid2 test in developmental builds is Microsoft’s Internet Explorer. The developers have said that passing the Acid2 test is not a high priority because their customers are putting demand on other more specific features. After a several-year-long development halt of Trident, Internet Explorer’s layout engine, the developers are currently working to add support for features other browsers have supported for quite a while, rather than focusing on some of the refinement details illustrated by the Acid2 test.

Internet Explorer 7 DOM support information available

Saturday, April 1st, 2006

I have finished the DOM and ECMAScript support information for Internet Explorer 7.

There isn’t much to say. As far as I could see, only three things have been changed:

  • Element.style.maxHeight is now supported.
  • Element.style.maxWidth is now supported.
  • Element.style.minWidth is now supported.

It’s surely a disappointment for those who were hoping for more of a move toward the DOM standards. There were also some changes regarding XMLHttpRequest, but that’s proprietary and thus beyond the scope of my tables.

And sadly, this is not an April Fool’s joke. Sorry.

Internet Explorer 7 CSS support information available

Thursday, March 30th, 2006

I have now finished testing the CSS 2.1 and CSS 3 support in Internet Explorer 7. The results are more significant than the previously reported HTML support improvements. CSS was the primary area of layout engine development in Internet Explorer 7, so this is where most of the layout engine changes reside.

Here are the major changes in Internet Explorer 7 as far as CSS 2.1 and CSS 3 support:

  • !important is now properly supported.
  • Much better support for selectors, including universal selectors, child selectors, adjacent sibling selectors, CSS 3 indirect adjacent sibling selectors, and all attribute selectors in CSS 2.1 and CSS 3. This is better support than Opera 8.5, although still behind Firefox 1.5 in some areas.
  • More correct pseudo-class and pseudo-element grammar implementation.
  • :first-child is now supported.
  • :hover is now supported for all elements, although not perfectly.
  • Backgrounds now correctly include border region.
  • dotted border style is now properly supported for one-pixel-wide borders.
  • bottom and right can now be used to stretch the box’s dimensions.
  • Some float bugs were fixed.
  • Box sizes are now properly constrained by the height and width properties.
  • Several margin bugs have been fixed.
  • max-height, max-width, min-height, and min-width are now mostly supported.
  • overflow is now correctly supported.
  • position:fixed is now supported.
  • z-index property now behaves correctly with select elements.

Here are some things I was disappointed about:

  • It still doesn’t support combined class selectors like p.foo.bar{} and still has other bugs with class and ID selectors.
  • :hover has some bugs that cause the hover state to sometimes remain even after the mouse has moved away.
  • :before and :after still aren’t supported, meaning counters, content, and quotes also aren’t supported.
  • inherit (one of the fundamental features of CSS) still isn’t supported.
  • Borders still aren’t supported for table row groups.
  • border-spacing, caption-side, and empty-cells still aren’t supported.
  • There was a nasty regression regarding the clear property that prevents elements from clearing floats under certain conditions.
  • clip still isn’t supported.
  • There were no improvements to the display property, meaning CSS table displays still aren’t supported.
  • Some margin bugs remain.
  • outline still isn’t supported.
  • There are still a lot of problems with the vertical-align property.
  • There were no improvements to the print properties.
  • Alternate stylesheets still aren’t supported (a requirement for CSS conformance).
  • There is still no option to disable author stylesheets (another requirement for CSS conformance).
  • Other than basic selectors, there were no improvements to CSS 3 support. There is still no support for any CSS 3 pseudo-classes or pseudo-elements.

A lot of painful problems were fixed, but Internet Explorer is still miles behind the competition in CSS support. According to the Web Devout tables, Internet Explorer 7’s CSS 2.1 support has risen from 54% to 65%, compared to Firefox 1.5’s 93% and Opera 8.5’s 94%. Due to the added CSS 3 selector support, overall support for CSS 3 changes has risen from 7% to 13%, compared to Firefox 1.5’s 28% and Opera 8.5’s 8%.

The lack of support for inherit, :before and :after pseudo-elements, and table display values will continue to be thorns in the sides of web developers. Hopefully these problems will be fixed in Internet Explorer 8, which is planned for release within one year of the Internet Explorer 7 release.

I will test DOM support improvements next, although I haven’t heard of any changes in that area.

Edit: As a reminder, Microsoft has previously announced that the latest build of Internet Explorer 7 is layout complete, meaning no significant changes will be made to the webpage layout engine until the final release.

Internet Explorer 7 HTML support information available

Sunday, March 26th, 2006

Following the announcement that the latest build of Internet Explorer 7 is layout complete, meaning no significant changes will be made to the webpage layout engine until the final release, I have begun testing Internet Explorer 7’s standards support. So far the HTML / XHTML support information is complete, and I will work on the CSS information next.

Here is what was changed in Internet Explorer 7 as far as HTML / XHTML support:

  • The abbr element is now supported.
  • There are some slight improvements to object support, including some form of fallback mechanism (see below).
  • The select, optgroup, and option elements have been improved.

Here are some things I was disappointed about:

  • The tabindex attribute still has worthless support
  • Important informational attributes like cite, datetime, and longdesc still have no interface for the user to access their values.
  • The button element still uses the element contents even if the value attribute is provided.
  • The implicit form for label elements still isn’t supported.
  • Alternate stylesheets still aren’t supported.
  • The object element is still practically unusable for simple things like images, the fallback mechanism doesn’t always seem to work, and sometimes the user is presented with strange messages in the object area instead of the fallback that should be provided in the event of a problem.
  • The q element still doesn’t show quotation marks, rendering the element nearly useless unless you’re willing to let user agents without CSS support see two pairs of quotation marks.
  • The title attribute is still supported incorrectly.
  • There wasn’t a single improvement to XHTML support (other than a change to the layout mode detection algorithm so that XML declarations don’t throw the browser into quirks mode).

All in all, it’s a disappointing outcome in this area. According to the Web Devout tables, overall HTML / XHTML support hasn’t risen by even one percentage point since Internet Explorer 6, and is still sitting at 80%.

The good news is that CSS was the primary focus of Internet Explorer 7 layout engine development (a decision I very much agree with), and I have seen noteable improvement there, particularly in regard to selectors. So far I have found one regression that prevents floats from being cleared under certain circumstances. More information will be available later.

Bill Gates promises new IE versions every year

Tuesday, March 21st, 2006

Microsoft chairman Bill Gates, at the MIX06 conference, announced that the company plans to release a new version of Internet Explorer every 9 to 12 months. Microsoft has repeatedly been criticized for halting development of their web browser after it attained an effective monopoly several years back, thus dramatically slowing the growth of web technology and resulting in much higher costs for web development than would otherwise be required. Due to the growing popularity of alternative web browsers, most notably Mozilla Firefox, followed by Opera and Safari, Microsoft has recently taken a defensive stand and resumed work on their browser. The Internet Explorer development team has claimed a commitment to web standards in upcoming versions, and has already made significant progress fixing some of the most costly bugs for the Internet Explorer 7 release. Most of the new webpage features currently being added are already supported by most alternative browsers, and the upcoming Firefox 2.0 and Opera 9 are expected for release before Internet Explorer 7.

If Microsoft delivers on their promise, we may see the situation for web developers improving significantly in the next few years.