molily: Pixelbreite eines Wortes (font-size:20px z.B) ermitteln?

Beitrag lesen

Jetzt habe ich zumindest verstanden, was du vorhast. Du willst einen vorgegebenen Blocksatz an die Breite anpassen, indem du die Schriftgröße skalierst, ohne das ein Umbruch erfolgt - wie man es vom PDF-Zoom kennt.

Wie du das mit JavaScript hinbekommst, ist mir allerdings schleierhaft. Da hilft dir die Abfragen der Breite eines Wortes ja nicht. Du könntest höchstens jede Zeile in ein span packen und bei einer Schriftvergrößerung *alle* Zeilen prüfen, ob sie noch nicht umbrochen sind. Das wäre Performance-mäßig der Killer.

Ohnehin hat das nichts mit sehbeeinträchtigten Benutzern zu tun und du gehst fehl in dem Glauben, durch den fest zoomenden Blocksatz gerade diesen Nutzern einen Gefallen zu tun. Irgendwie hast du da auch falsch kalkuliert: Heutige Browser, und vor allem assistive Techniken von Sehbehinderten, machen entweder Full-Page-Zoom. Das heißt, wenn du einmal eine Konfiguration hast, in der der Blocksatz genau passt, dann kann der Benutzer frei skalieren und dein Blocksatz bleibt bestehen, bis eine Zeile länger als der Viewport wird. Oder jemand benutzt absichtlich einen Zoom, der dein Layout und also deinen Blocksatz kaputthaut, damit er für den Nutzer überhaupt zugänglich wird.

Insofern denke ich nicht, dass sich der Aufwand lohnt, diese Funktionalität mit JavaScript nachzubauen. Denjenigen, die es brauchen, hilfst du wenig damit, dass du ihren Bildschirm mit riesigen Buchstaben zukleisterst (»größtmögliche Schriftgröße«), nur damit das Buchlayout erhalten bleibt.

In so einem Fall würde ich eher

  • PDFs zusätzlich anbieten fürs Offline-Lesen,
  • ein Stylesheet-Switcher einbauen, mit dem sich der feste Blocksatz aufheben lässt zugunsten eines frei fließenden Textes - der gegenüber benutzerseitigen Umformatierungen und Skalierungen flexibler ist.

Mathias