Format-flawed-FAQ

Dieser Text beschreibt format=flowed im allgemeinen und in den Besonderheiten von SeaMonkey (und damit Netscape oder Thunderbird).

Bei Bugzilla gibt es ein FAQ in Englisch dazu.

Was ist format=flowed

Die Idee von format=flowed ist es, Absätze zu erhalten. Dazu wird am Ende jeder Zeile, deren Folgezeile zum selben Absatz gehören soll, ein Leerzeichen angefügt. Damit das funktioniert, müssen jedoch weitere Änderungen (s.u.) vorgenommen werden. Eigentlich wäre dieses Verfahren damit ein Content-Transfer-Encoding. Statt dessen wird es jedoch als Content-Type (genauer: Subtype von text/plain) deklariert. Es soll nämlich eigentlich direkt lesbar sein, erfodert aber in Wirklichkeit eine Dekodierung. Das ist also BAD. Deshalb die passende Bezeichnung Format flawed.

Was genau passiert bei format=flowed

Neben den bereits angesprochenen Leerzeichen am Zeilenende werden folgende Veränderungen am Text vorgenommen:

Ein Reader, der format=flowed interpretiert, macht die vorstehenden Änderungen mit Ausnahme der zweiten rückgängig, andere jedoch bekommen den veränderten Text zu sehen. Je nach Implementierung gibt es auch gute Gründe, die Interpretation von format=flowed abzustellen.

Ganz genau beschrieben ist das Verfahren in RfC 3676.

Unerwartete Effekte …

… beim Schreiben

Der wesentliche Bruch, der durch Format flawed entsteht, ist, dass eine Grundannahme von Mail und News verletzt wird, nämlich, dass der abgeschickte Text auch so aussieht, wie er abgeschickt wurde (WYSIWYG).

Besonders auffällig ist hier, dass Zeichen, die mit Quotesymbol eingegeben werden, nicht als Quoting ankommen. Seltener sieht man — dafür dann aber meist umso deutlicher — die oben beschriebenen Effekte bei Listen, Tabellen und ASCII-Art. Offenbar wollte der Schreiber aber gerade nicht, dass die Empfänger dies so verändert vorgesetzt bekommen.

Wenn der Schreiber nicht damit rechnet (was er in der Praxis so ungefähr nie tun dürfte), dass der von ihm gequotete Text beim Empfänger auch neu umbrochen werden kann, werden seine Hervorhebungen ihr Ziel auch verfehlen. Ein Beispiel: Der Schreiber unterstreicht ein Wort im Quoting, das stellt sich ihm so dar:

> Dies hier ist ein Absatz, der mit format=flowed gekennzeichnet 
> ist, was aber beim Schreiben ja nicht sichtbar ist.
                                        ~~~~~~~~

Damit habe ich nicht gerechnet.

Beim Empfänger sieht das dann vielleicht dergestalt aus:

> Dies hier ist ein Absatz, der mit format=flowed 
> gekennzeichnet ist, was aber beim Schreiben ja nicht 
> sichtbar ist.
                                        ~~~~~~~~

Damit habe ich nicht gerechnet.

… beim Lesen

Der Leser wird sich natürlich über all das wundern, was der Schreiber schon nicht wollte. Je nach Implementation von format=flowed (z.B. in der von SeaMonkey), bekommt er aber noch ein anderes Problem. Die Absätze werden nämlich als eine lange Zeile dargestellt, die erst am Fensterrand umbrochen wird; dies ist regelmäßig eine Zeilenlänge weit jenseits dessen, was gut lesbar ist.

Spezifische Probleme von SeaMonkey (und damit Netscape oder Thunderbird)

Die Liste der Probleme ist lang. Dabei gibt es grundsätzlich verschiedene Arten von Bugs. Das eine sind klare Fehler in der Implementierung, also Verletzungen des Standards, das zweite überraschende Nebeneffekte (z.B. die eingerückten "Quotes") und das dritte schließlich Effekte, die dem Nutzer das Leben vermiesen (etwa die endlos langen Zeilen). Ich beschränke mich hier auf die wichtigsten Probleme, also diejenigen, die im alltäglichen Gebrauch am auffälligsten sind:

Bug 144998: Empty lines under quotes are doubled
Wenn format=flowed benutzt wird, werden unterhalb von Quoteblöcken beim erneuten Quoten zusätzliche Leerzeilen eingefügt. Sieht total peinlich aus.
Bug 114954: Mail editor space-stuffs quote prefixes in pasted text
Das ist der Bug mit den händisch eingefügten Quotezeichen, dabei ist es egal, ob sie eingetippt oder reinkopiert werden.
Bug 71110: need pref to set message view pane width separate from window width
Die Darstellung der überlangen Zeilen beim Empfang von format=flowed soll durch eine sinnvolle Zeilenlänge beschränkt werden. (Workaround)
Bug 141983: Space added to indented line when sending message
Das ist strenggenommen kein Bug. Hier zeigt sich aber das Problem, dass der Empfänger was sieht, was er so nicht sehen sollte. Konzeptfehler von Format flawed halt.

Und wie werde ich diese ganzen Probleme los?

Zum Glück bietet SeaMonkey die Möglichkeit, sowohl die Verwendung von format=flowed beim Erstellen von Mails/Postings zu vermeiden als auch die Interpretation von format=flowed beim Lesen. Hierzu ist es erforderlich, Einstellungen in den Preferences vorzunehmen (ein User-Interface existiert derzeit noch nicht). Dies geschieht entweder dadurch, dass man in der Adresszeile about:config eingibt und die unten genannten Optionen anpasst, oder, indem man die folgenden Zeilen in seine user.js (prefs.js, wenn man die Einstellung nicht bei jedem Neustart erneut erzwingen will) aufnimmt:

// Anzeige von Format flawed ausstellen (keine Endloszeilen)
user_pref("mailnews.display.disable_format_flowed_support", true);
// Versand von Format flawed unterbinden
user_pref("mailnews.send_plaintext_flowed", false);
// Bei der Gelegenheit: Quotes nicht mit Balken darstellen
user_pref("mail.quoted_graphical", false);
user_pref("mail.quoteasblock", false);

Zu guter Letzt

Vielen Dank für die Aufmerksamkeit. Korrekturen und Ergänzungen nehme ich gerne per Mail entgegen.


Valid CSS!Valid HTML 4.01!
© Boris 'pi' Piwinger, September 10, 2004