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

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

Acid2: The Fixes Begin - Row 1 and Row 13 (Updated!)

NOTE: I've added some some more details to this entry and corrected an error regarding which bugs affected which rows.

The first Acid2 fixes were in build 7570. According to the W3C CSS 2.1 spec., min-height/width declarations take precedence over max-height/width declarations. In Opera, max-height/width won. Check this test case to see how your browser does for max/min-height and this test case to see how it does for max/min-width. In build 7570, we fixed the case where max-height overrides min-height. This fixes the height of row 1 in the Acid2 test. The max/min-width fix probably will not be in 8.0x, as it isn't part of the Acid2 test.

The second bug fixed in this build is related to the background shorthand property. If a declaration has more than one value for the same property, all values for that property should be ignored. Opera was using the last value found for background-color, background-repeat, background-image, and background-attachment declarations instead of ignoring all values. This fixes the coloring issue in row 13. Check this test case to see how how your browser does it.

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

Screenshot of the Acid2 test

The Acid2 Challenge

As some of you may know, the Web community issued a challenge to Microsoft to correct errors in Internet Explorer and fill gaps in it's standards support. The challenge is based on a test page code-named Acid2.

We've found at least thirteen separate bugs in Opera 8.0 Final that need to be fixed before we can pass the Acid2 test. Some of these bugs are trivial to fix, while others require major code updates. Opera 8.0 Final on Windows (build 7561) renders the Acid2 test like this:

Screenshot of the Acid2 test

We've already begun work on fixing the problems we found. Opera 8.01 should include several fixes, but will not completely pass Acid2.

Gratulerer Med Dagen (Happy Constitution Day)!

Norwegian flags in a paradeToday is the 100th anniversary of Norway's indepen­dence from Sweden in 1905 and the signing of the Norweigan Consti­tution in 1814. It's celebrated yearly with two parades in most cities and towns throughout Norway, one for children and one for students graduating from high school (Russ). Through a Christian group we're part of here, Rebekah and I had prime placement in front of the Royal Palace. We even waved to the Queen!

We spent most of our morning in front of the Palace watching the parades go by. While they were nice, it got a bit repetitive after a while. One can only watch so many marching bands and children waving flags. There was a spirited attempt at The Village Peoples' YMCA, but that was probably the highlight of the parade music. At 1pm, we went to Domkirke, a large church downtown, for a traditional May 17th service. Afterward, we went to my co-workers', Lynn and Lars Thomas, apartment for lunch with some other co-workers. It was a long, fun day. As my sister Jen would say, The dogs are barking (my feet hurt).

One of the most interesting parts of the May 17th festivities is Russ, seniors graduating from high school. From around May 1st to May 17th, they celebrate the end of their primary school education with over two weeks of mischief. Part of the tradition is the Russ bus, a bus purchased by students as their transportation. The busses are decorated, filled with speakers, and travel the city waking poor slumbering souls at all hours of the night.

Norwegians in traditional costumeAnother cultural gem is the traditional Norwegian costume, the bunad. These costumes are normally only worn for special occasions, such as weddings, funerals, christenings, and, of course, Constitution Day. Each county in Norway has its own style and colors, adding a bit more life to the May 17th parades.

I've been wanting to be a part of the May 17th celebration since I first came to Norway two years ago and today didn't disappoint. One of the best things about living in a foreign country is learning the culture from the inside. And today I got one more cultural notch on my belt. Check out some pictures from our day in our image gallery.

Opera Journal

Previously, I've been keeping an Opera journal on the my.opera.com site. For various reasons, I've decided to move it here. I've setup a category specifically for the Opera stuff, so interested readers can keep track of that section only. There's even an RSS feed just for that category. You can even get e-mail notifications about new posts if you sign up for an account at my site.

What does this mean for current readers of Stranger, yet...? More updates! I've been doing a lot of little tweaks over the past week or so and I'll try to smooth things out even more soon. I'm also going to get rid of that funny blue face (his name is Marvin), but I have to figure out something to replace it with first. The page looks too drab otherwise (well, even more so than it already is, anyway). Happy reading!