Guideline 4.0

Guideline 4.0 - Design: Hard to Read Typography

Low RiskEasyTypical Fix: 2-4 hours0 Reports
Also known as:Body text font size is too small (below 11pt)Decorative or script font used for body or instructional textInsufficient line spacing makes text difficult to scanText does not scale with Dynamic Type user preferenceLight-colored text on a light background or dark text on a dark background

Our Take

Apple flagged your app for hard-to-read text or typography. This can mean font sizes are too small, line spacing is too tight, decorative fonts are used for body text, text color lacks contrast against its background, or the app does not respect the user’s Dynamic Type preferences. Apple expects text to be legible at a glance and comfortable to read for extended periods.

Resolution Guide

01

**Increase minimum font size** — Body text should be at least 17pt (the iOS default for `.body` style). Supporting text should be no smaller than 13pt. Never go below 11pt for any user-facing text.


02

**Replace decorative fonts for body text** — Use the system font (San Francisco) or a high-legibility typeface for all body text, labels, and instructional copy. Reserve decorative fonts for titles or branding only.


03

**Adopt Dynamic Type** — Use `UIFont.preferredFont(forTextStyle:)` in UIKit or SwiftUI’s built-in text styles (`.body`, `.headline`, `.caption`). This automatically scales text to the user’s preferred size.


04

**Improve line spacing** — Ensure line height is at least 1.2× the font size. In SwiftUI, use `.lineSpacing()` modifier. In UIKit, set `paragraphStyle.lineSpacing`.


05

**Check color contrast** — Ensure a minimum contrast ratio of 4.5:1 for body text and 3:1 for large text (18pt+). Use Xcode’s Accessibility Inspector or an online contrast checker.


06

**Test at all Dynamic Type sizes** — In the iOS Simulator, go to Settings → Accessibility → Display & Text Size and test your app at the smallest and largest (including accessibility sizes) settings.


07

**Resubmit with reviewer notes** — Mention that you’ve improved typography and support Dynamic Type.


Example Rejection Email

From:Apple App Review Team
Subject:Guideline 4.0 - Design: Hard to Read Typography
Your app included hard to read type or typography. Since App Store users expect apps to be simple, refined, and easy to use, we want to call your attention to this design issue. Specifically, text in several screens of your app uses a font size that is too small to read comfortably, and body text uses a decorative font that reduces legibility. Next Steps: Please revise your app to improve the readability of the typography and resubmit.

Consider Appealing

Appeals are unlikely to succeed for typography rejections because the fix is simple and fast. Only appeal if you believe the reviewer misidentified the screen or your typography already meets HIG standards — in that case, provide exact font sizes and contrast ratios.

Generate Appeal

Before & After

Before — Rejected

// Hardcoded tiny font with decorative typeface

Text(article.body)

.font(.custom("Papyrus", size: 12))

.lineSpacing(0)

.foregroundColor(Color.gray)

After — Approved

// System body style with Dynamic Type and proper spacing

Text(article.body)

.font(.body)

.lineSpacing(4)

.foregroundStyle(.primary)

What changed: The .body text style defaults to 17pt San Francisco and automatically scales with Dynamic Type. Using .primary foreground ensures proper contrast in both light and dark mode.

Community Solutions · 0

Sign in to share your solution.

More Guideline 4 (Design) rejections

View all Guideline 4 rejections