Donnerstag,
27. März 2008

Das Entwicklerteam des Opera-Browsers ist ausgesprochen aktiv und immer um die Weiterentwicklung ihres Browsers bemüht. Erst gestern meldete das Opera Desktop Team 100 von 100 möglichen Punkten im ACID 3 Test des Webstandards Projects (im Wettrennen mit Safaris Webkit-Engine) und darf sich nun feiern und auf die Schulter klopfen lassen.

Sehr schön, wirklich. Allerdings kontrolliert der ACID3-Test offensichtlich nicht Ergebnisse grundlegender Rechenoperationen, die jeder Browser beherrschen sollte (sowas wird allgemein nach der Grundschule vorausgesetzt). Und so passiert es, dass der Opera seit Jahren nicht dazu fähig ist, Prozentangaben als reelle Zahlen zu verarbeiten. Stattdessen schneidet er beständig auch in der neuesten Beta-Version Nachkommastellen einfach weg und behandelt Breiten- und Höhenangaben in Prozent als Integerwerte.

Das W3C legt in der CSS2 Spezifikation in Abschnitt 4.3.3 fest:

The format of a percentage value (denoted by <percentage> in this specification) is an optional sign character (’+’ or ‘-’, with ‘+’ being the default) immediately followed by a <number> immediately followed by ‘%’.

Die Definition für <number> findet sich in Abschnitt 4.3.1, die wichtigen Passagen sind markiert:

Some value types may have integer values (denoted by <integer> ) or real number values (denoted by <number>). Real numbers and integers are specified in decimal notation only. An <integer> consists of one or more digits “0” to “9”. A <number> can either be an <integer>, or it can be zero or more digits followed by a dot (.) followed by one or more digits. Both integers and real numbers may be preceded by a “-” or “+” to indicate the sign.

Die Auswirkungen dieses Bugs bekommt man bei der Positionierung von Containern mit flexiblen Spaltenbreiten oder -höhen, sowie bei der Skalierung von Schriftgrößen (man denke an krumme Werte infolge Vererbung) zu spüren, denn wo selbst der IE5 (FF und Safari natürlich ebenso) bei der Rechnung 66.666% + 33.333% = 99.999% (bei Layoutbreiten unter 100.000 Pixeln also effektiv 100 Prozent) errechnen, landet Opera bei 99 Prozent denn er macht daraus 66%+33%. Aus dieser Eigenart ergeben sich dann plötzlich Abstände und Zwischenräume im Layout wo keine sein dürften. Für Webdesigner entstehen hingegen Fragezeichen über dem Kopf und unnötiger Anpassungsaufwand, denn patchen lässt sich dieser Bug leider nicht.

Also liebe Opera-Entwickler: Wenn Ihr mit dem Feiern fertig seid wäre es wirklich ein Segen, wenn ihr Euch dieses Problems endlich mal annehmen könntet. Ich war auch diesmal so freundlich, einen Testcase zu bauen, extra für Euch.

Auf der anderen Seite zeigt sich für mich mal wieder, dass auch die ACID-Tests (mittlerweile in der 3. Generation) für den Alltag nicht die Praxisnähe haben, die man sich eigentlich wünschen würde, um die Rendering-Qualität von Browsern korrekt einschätzen und vergleichen zu können.

Update 16.6.2012: Vor wenigen Tagen ist Opera 12 erschienen. Und mit dieser Version ist dieser “ewige” Bug nun endlich beseitigt. Vielen Dank.

 


Du kannst die Kommentare zu diesen Eintrag durch den RSS 2.0 Feed verfolgen. Du kannst einen Kommentar schreiben, oder einen Trackback auf deiner Seite einrichten.

Dieser Eintrag kann nicht mehr kommentiert werden.