Apps · Textskalierung

Dynamic Type und Textskalierung in Apps

Viele Menschen stellen ihr Smartphone auf eine größere Schrift, weil sie sonst kaum etwas lesen können. Eine gute App respektiert diese Einstellung, statt eine feste Schriftgröße zu erzwingen. Diese Seite zeigt, wie das auf beiden Plattformen funktioniert: Dynamic Type unter iOS, sp-Einheiten und nichtlineare Skalierung unter Android, und wie du dein Layout so baust, dass es bei großer Schrift nicht zerbricht.

  • 10 Minuten Lesezeit
  • Stand: Juni 2026

Warum Textskalierung so wichtig ist

Sehkraft ist keine Ja-Nein-Frage. Sehr viele Menschen sehen ausreichend, um ein Smartphone zu nutzen, aber nur mit größerer Schrift. Mit dem Alter lässt die Naheinstellung des Auges nach (Alterssichtigkeit), dazu kommen Kurzsichtigkeit, Augenerkrankungen oder einfach das Lesen bei schlechtem Licht. Deshalb bieten iOS und Android seit Langem eine systemweite Einstellung für die Schriftgröße. Wer sie hochstellt, erwartet, dass jede App folgt.

Eine App, die feste Schriftgrößen erzwingt, ignoriert diese Einstellung und bleibt für viele Menschen schwer lesbar. Der gute Nachricht: Wenn du die Bordmittel der Plattform richtig verwendest, skaliert dein Text fast von selbst. Die Arbeit steckt weniger im Text als im Layout drumherum.

Feste Schriftgröße gegen mitwachsende Schrift Vergleich zweier Smartphone-Bildschirme bei großer Systemschrift. Links bleibt der Text klein und passt nicht zur Einstellung. Rechts wächst der Text mit und der Inhalt fließt sauber um. FESTE GRÖSSE Heutige Termine 09:00 Team-Meeting 13:30 Zahnarzt Systemschrift: 200%, App ignoriert sie Text bleibt winzig MITWACHSEND Heutige Termine 09:00 Team 13:30 Zahnarzt Schrift folgt der Einstellung, Inhalt fließt um
Dieselbe App bei großer Systemschrift. Links eine feste Größe, die die Einstellung ignoriert. Rechts mitwachsende Schrift, bei der der Inhalt sauber umbricht. Das Ziel ist immer das rechte Verhalten.

iOS: Dynamic Type

Dynamic Type ist Apples System für skalierbaren Text. Nutzer:innen wählen ihre bevorzugte Textgröße einmal zentral, unter Einstellungen → Bedienungshilfen → Anzeige & Textgröße → Größerer Text , und alle Apps, die Dynamic Type unterstützen, folgen dieser Wahl. Standardmäßig gibt es sieben Größen; aktiviert man die zusätzlichen Bedienungshilfen-Größen, kommen fünf weitere dazu, in Summe also zwölf. Die Voreinstellung heißt Large.

Der Schlüssel sind die Textstile(Text Styles): semantische Rollen wie body , headline , title oder caption . Du sagst dem System nicht „17 Punkt", sondern „das ist Fließtext", und iOS wählt die passende Größe für die aktuelle Nutzer:innen-Einstellung. Seit iOS 11 passen sich alle Textstile an alle zwölf Größen an. Verwendest du sie, bekommst du die volle Skalierung praktisch geschenkt.

SwiftUI und UIKit: Textstile statt fester Punktgrößen

 // SwiftUI: .body skaliert automatisch mit Dynamic Type 
Text("Heutige Termine")
    .font(.body) // UIKit: preferredFont(forTextStyle:) liefert die passende Größe 
label.font = .preferredFont(forTextStyle: .body)
label.adjustsFontForContentSizeCategory = true

Der Zusatz adjustsFontForContentSizeCategory in UIKit ist wichtig: Er sorgt dafür, dass das Label seine Größe auch dann aktualisiert, wenn Nutzer:innen die Einstellung ändern, während die App geöffnet ist. In SwiftUI passiert das automatisch.

Wissens-Karte: die wichtigsten iOS-Textstile
Textstil Verwendung
largeTitle / title Seitentitel und große Überschriften
headline / subheadline Hervorgehobene Zeilen, Abschnittsköpfe
body / callout Fließtext und hervorgehobene Absätze
footnote / caption Hinweise, Bildunterschriften, Metadaten

Android: sp-Einheiten und nichtlineare Skalierung

Android trennt zwei Maßeinheiten sauber: dp (dichteunabhängige Pixel) für Layout-Maße und sp (skalierbare Pixel, scalable pixels ) für Schriftgrößen. Der Unterschied: sp berücksichtigt zusätzlich die von Nutzer:innen gewählte Schriftgröße. Die Regel ist einfach und folgenreich: Schriftgrößen immer in sp , niemals in dp oder festen Pixeln. Als Untergrenze für Fließtext empfiehlt Google mindestens 12 sp.

Seit Android 14 ist die Schriftskalierung nichtlinear: Sehr große Schriften wachsen langsamer als kleine, damit Überschriften bei maximaler Einstellung nicht ins Unermessliche springen und das Verhältnis zwischen Text und Layout lesbar bleibt. Eine praktische Folge: Das alte Feld scaledDensity ist dadurch nicht mehr verlässlich. Wer einen Skalierungsfaktor braucht, nutzt fontScale nur noch informativ und rechnet mit TypedValue.applyDimension() beziehungsweise deriveDimension() zwischen sp und Pixeln um; diese Methoden wenden die nichtlineare Kurve korrekt an.

Android: Schriftgröße in sp, Zeilenhöhe ebenfalls in sp

 // XML-Layout: sp für die Schrift, sp auch für lineHeight 
<TextView
    android:textSize="16sp"
    android:lineHeight="24sp" /> // Jetpack Compose: fontSize in .sp 
Text(
    text = "Heutige Termine",
    fontSize = 16.sp
)

Eigene Schriften skalierbar machen

Markenschriften sind kein Hindernis. Beide Plattformen bieten einen Weg, beliebige Schriften wie den System-Fließtext mitskalieren zu lassen. Unter iOS übernimmt das die Klasse UIFontMetrics (seit iOS 11): Sie nimmt deine Schrift und wendet die Dynamic-Type-Kurve eines gewählten Textstils darauf an. Unter Android genügt es, die eigene Schrift in einer TextView oder einem Compose- Text mit einer Größe in sp zu verwenden, dann skaliert sie wie jede andere.

iOS: eine eigene Schrift mit Dynamic Type skalieren

 // Eigene Schrift in 17 pt, skaliert wie der Textstil .body 
let custom = UIFont(name: "MeineSchrift-Regular", size: 17)!
label.font = UIFontMetrics(forTextStyle: .body).scaledFont(for: custom)
label.adjustsFontForContentSizeCategory = true

In SwiftUI lässt sich derselbe Effekt über @ScaledMetric auch auf andere Maße übertragen, etwa auf die Größe eines Icons oder einen Abstand, der zur Schrift passen soll. So bleibt das Verhältnis zwischen Text und umgebenden Elementen auch bei großer Schrift stimmig.

Layouts, die mitwachsen

Die eigentliche Arbeit liegt selten im Text, sondern im Layout. Wenn die Schrift wächst, braucht sie Platz. Feste Höhen, abgeschnittene Zeilen oder nebeneinander erzwungene Elemente sind die typischen Bruchstellen. Drei Grundregeln helfen fast immer:

  • Keine festen Höhen für Textcontainer. Lass Knöpfe, Zellen und Karten in der Höhe mitwachsen, statt Text bei großer Schrift abzuschneiden.
  • Zeilenumbruch zulassen. Begrenze Texte nicht hart auf eine Zeile, wenn der Inhalt länger werden kann. Ein Label, das auf eine Zeile gezwungen wird, verschwindet sonst hinter „…".
  • Bei sehr großer Schrift umbrechen statt quetschen. Zwei nebeneinanderliegende Elemente dürfen bei großer Schrift untereinander rutschen. Auf iOS hilft dabei die Idee, ab den Accessibility-Größen auf ein vertikales Layout umzuschalten.
Feste Höhe gegen mitwachsenden Container Links eine Schaltfläche mit fester Höhe, deren Beschriftung bei großer Schrift abgeschnitten wird. Rechts dieselbe Schaltfläche, deren Höhe mitwächst, sodass die Beschriftung auf zwei Zeilen vollständig sichtbar bleibt. FESTE HÖHE: SCHNEIDET AB Bestellung absc… Die Beschriftung passt nicht mehr in die feste Höhe. MITWACHSENDE HÖHE Bestellung abschließen Der Knopf wächst und bricht die Beschriftung um.
Eine Schaltfläche mit fester Höhe schneidet ihre Beschriftung bei großer Schrift ab. Lässt man die Höhe mitwachsen und erlaubt den Umbruch, bleibt die ganze Beschriftung lesbar.

Der Bezug zu WCAG und EN 301 549

Textskalierung ist nicht nur Komfort, sondern eine Barrierefreiheits-Anforderung. In den Web Content Accessibility Guidelines (WCAG 2.2) verlangt das Erfolgskriterium 1.4.4 „Text vergrößern"(Stufe AA), dass sich Text bis 200 % vergrößern lässt, ohne dass Inhalt oder Funktion verloren gehen. Die WCAG sind für Webseiten geschrieben; für Apps überträgt das Dokument WCAG2ICT diese Kriterien sinngemäß, und der europäische Standard EN 301 549(Kapitel 11) macht sie über das Barrierefreiheitsstärkungsgesetz (BFSG) auch für mobile Anwendungen verbindlich.

Praktisch heißt das: 200 % sind die Untergrenze, die du erfüllen musst. Dynamic Type und die Android-Schriftskalierung gehen darüber hinaus, iOS erlaubt bei den größten Bedienungshilfen-Stufen eine Vergrößerung von deutlich über 300 %. Wer die Plattform-Mittel sauber nutzt, erfüllt 1.4.4 also nicht nur, sondern mit Reserve.

Wie sich „Text vergrößern" von Web zu App überträgt
Ebene Was gilt
WCAG 2.2, SC 1.4.4 (AA) Text bis 200 % vergrößerbar, ohne Verlust von Inhalt oder Funktion
WCAG2ICT Überträgt das Kriterium sinngemäß auf Nicht-Web-Software, also auch auf Apps
EN 301 549, Kap. 11 Europäischer Standard, der die WCAG-Kriterien für Software referenziert
BFSG (seit 28.06.2025) Macht Barrierefreiheit für viele Apps rechtlich verpflichtend

Testen auf beiden Plattformen

Textskalierung lässt sich in Minuten prüfen, und der Test deckt fast alle typischen Fehler auf. Du stellst die Systemschrift auf das Maximum und gehst deine wichtigsten Bildschirme durch.

Findest du Stellen, an denen Text abgeschnitten wird oder das Layout bricht, liegt es fast immer an einer festen Höhe oder einer harten Zeilenbegrenzung, nicht am Text selbst.

Zwei verbreitete Irrtümer

Mythen-Check

Was über Textskalierung oft falsch erzählt wird

„Eine feste Schriftgröße sieht einfach sauberer aus." Sauber für wen? Eine feste Größe ignoriert die bewusste Einstellung der Nutzer:innen und macht die App für alle unlesbar, die größere Schrift brauchen. Gutes Design heißt hier nicht, die Größe festzunageln, sondern dafür zu sorgen, dass das Layout bei jeder Größe stimmig bleibt.

„Wenn ich überall sp nehme, bin ich fertig." Die Einheit ist die halbe Miete. Die andere Hälfte ist das Layout: Container, die mitwachsen, Texte, die umbrechen dürfen, und Abstände, die in dp bleiben. Erst beides zusammen ergibt eine App, die bei großer Schrift nicht zerbricht.

Wenn du tiefer einsteigen willst, sind die offiziellen Quellen von Apple und Google unten verlinkt. Und wie du Bedeutung und Rollen sauber an die Hilfstechnologien übergibst, zeigt der Artikel zur Semantik in SwiftUI und Jetpack Compose.