The Good Life... a weblog about life, technology, and the Opera Web browser

Posts from May 25, 2005

Date
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

Acid2 - Rows 4 and 5

One more Acid2 fix came in build 7597. Authors may set fallback content for OBJECT elements in HTML 4.01 to be displayed if the OBJECT cannot be rendered. If the server response for an OBJECT resource was an HTTP error code (i.e. 404), Opera would display an inline error page instead of the fallback content. Check this test case to see how your browser handles it.

Opera will now properly show the fallback content for HTTP errors, making the eyes in rows 4 and 5 appear. Here's the updated rendering with this bug fixed:

Screenshot of the Acid2 test

Acid2 - Spec. Violations vs. Page Rendering Problems

Two of the Acid2 bugs in Opera have somewhat interesting histories. First, there's a bug with the handling of HTML comments. According to the W3C HTML 4.01 spec., an HTML comment can contain multiple comments inside each markup declaration delimiter pair. We used to handle comments according to the HTML 4.01 spec., but found problems on a couple of pages. Since Internet Explorer doesn't treat HTML comments according to the spec., authors didn't see the problem. After unsuccessfully attempting to get the pages fixed, we decided to break the spec. and treat everything between markup declaration delimiters as comments like Internet Explorer. This causes the word "ERROR" to appear in row 13 of the Acid2 test.

We had similar problems with :hover rules on some Web sites. Many authors didn't specify classes, IDs, and/or elements along with the :hover pseudo-class in selectors (thus triggering the universal selector). Internet Explorer only supports the :hover pseudo-class for A elements, so most page authors didn't know that a problem existed. Again, after unsuccessfully attempting to get the pages fixed, we decided to break the spec. and prevent the :hover pseudo-class from working with the universal selector. This causes the nose in rows 6 to 9 to turn red when hovered rather than blue.