robsite

In wtf

Firefox Caret Confusion

firefox-caret-bug

Der Textcursor (Caret) in Firefox hat manchmal einen kleinen Haken. Warum?

/images/posts/0000/0658/cursorhaken_big.png

Ich hab ihn immer für einen unwichtigen XUL-Bug gehalten und nicht weiter drüber nachgedacht. Aber auf Dauer nervts, zumal die zwei Pixel irgendwie gewollt aussehen. Vielleicht ist es der Versuch gelangweilter Firefox-Entwickler, die User mit sowenig Aufwand wie möglich schrittweise und über Jahre hinweg in den Wahnsinn zu treiben? Hier zwei Pixel falsch, dort ein Abstand zu klein... Merkt der User ja nicht. Bis er sich irgendwann drei Bund Möhren in die Ohren schiebt um die Gnome zu vertreiben.

Doch die Wahrheit ist öd. Der mysteriöse Haken gibt einfach nur die Textrichtung an.
Er erscheint z.B. im Suchfeld des arabischen Google:

/images/posts/0000/0664/Bild_16_big.png

Aber nicht im deutschen:

/images/posts/0000/0670/Bild_14_big.png

Warum aber seh ich ihn manchmal in der Adresszeile des Browsers, obwohl ich dort eindeutig Text von links nach rechts eintippe?

Ein wenig gewühle in Bugzilla bringt Erleuchtung. Anscheinend gibt es mehrere Problem mit dem sogenannten BiDi-Caret (bi-directional).

Es erscheint in einem unbeteiligten Textfeld, sobald nur irgendwo auf der Seite rechts-nach-links (right to left, RTL) Text steht. Außerdem ist in einem im Januar 2005 geöffneten Ticket obiger URL-Bug beschrieben. Das BiDi-Caret erscheint dauerhaft in der Addresszeile, nachdem man eine Seite mit RTL-Text besucht hat. Der Bug scheint noch nicht behoben, das Ticket ist zumindest noch offen.

Jedoch! Eine andere Lösung ist in Sicht. Man berät, den Hakencursor nicht mehr vom Seiteninhalt, sondern von der bidi.browser.ui Einstellung abhängig zu machen. Somit wäre er bei deutschen, englischen etc. Firefoxen standardmäßig deaktiviert.

Der letzte Patch dazu wurde am 21. November gepostet, also landet er vllt. schon in Firefox 3.0.5.

Derweil besteht ein anderer Vorschlag darin, den Haken noch etwas länger zu machen...

· gui, html, wtf · ★
Mastodon