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

Posts from May 19, 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 - 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

Acid2 - Row 1 (again) and Row 14

First, some clarifications. Some of you may wonder why the fixes I mentioned in my last post aren't in 8.01 Preview 1, build 7583, since they were made in build 7570. That preview is based on a different working branch, where the Acid2 fixes weren't merged.

Also in my last post, I mentioned that the fix for max/min-width problems won't be in 8.0x. While fixing Acid2 bugs is a priority, so is avoiding regressions and Web site compatibility problems. The fewer changes we include, the lower the probability of regressions. That fix will be in next major rendering engine update (which we're already working on). Some of the Acid2 fixes will also have to wait until that update, as they require major code updates.

Build 7586 brought two more Acid2 fixes. The first fix is again for row 1. The W3C HTML 4.01 spec. says that end tags for P elements are optional. In Opera, if a TABLE element followed a P element, the P wasn't closed and the TABLE was considered a child of the P, rather than a sibling. Row 1 now displays correctly. Check this test case to see how your browser handles it.

The second fix in this build is related to anonymous table object creation. In Opera, if a table existed in an anonymous table row, then the table row was terminated after that table. Any additional cells that should have been in that row created a new anonymous table row. Check this test case to see how your browser handles it. Row 14 is now looking a lot better, but still isn't quite right.

Here's the updated rendering with these two bugs fixed:

Screenshot of the Acid2 test