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

Posts from May 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 10 and 11

One more Acid2 bug has been fixed in build 7621. If the calculated height of an element is negative, then the height of the element should be clamped to 0 (I can't actually find this in the spec., but Ian assured us this was the case). Opera allowed negative calculated heights, which could lead to some interesting renderings. Check this test case to see how your browser handles it.

Now, the height is simply clamped to 0, fixing the rendering of rows 10 and 11. No longer is our Acid2-man indifferent. He's smiling!

Screenshot of the Acid2 test

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.

The Secret's Out!

Conversation begun May 1, 2005 at 8:30 PM

roynuJ: keep a secret?
Seven n 4: umm...sure.
roynuJ: we're expecting
Seven n 4: ::blink::
Seven n 4: you stud!!

Acid2 - The Containing Block

Our next Acid2 fix came in build 7587. The W3C HTML 4.01 spec. defines the rel attribute of the LINK element as a space-separated list of link types. In Opera, we treated the entire value of the rel attribute as one link type. Check this test case to see how your browser handles it.

Now, we specifically look for the stylesheet link type if a space-separated list is used. While this fixes the problem in the Acid2 test, it doesn't completely fix the bug. There are still cases that won't work in 8.0x where you might want a single LINK element to point to both start and prev, for instance.

Here's the updated rendering with this bug fixed (so much nicer):

Screenshot of the Acid2 test