Supporting Dynamic Type and Larger Text in your app to enhance Accessibility

Understand how to prepare your application to support Dynamic Type.

Supporting Dynamic Type and Larger Text in your app to enhance Accessibility

iOS offers a range of vision accessibility features that can help users with visual impairments to use their devices more effectively. One such feature is the Larger Text and, in general, Dynamic Type, which allows users to customize text size to their preferences.

The Dynamic Type feature allows users to choose the size of textual content displayed on the screen. It helps users who need larger text for better readability. It also accommodates those who can read smaller text, allowing more information to appear on the screen. Apps that support Dynamic Type also provide a more consistent reading experience. - Apple’s Developer Documentation

Dynamic Type was first introduced in iOS 7 as a part of their ongoing commitment to accessibility. It has evolved over the years, with each iOS version bringing enhancements to make the feature more versatile. Users can adjust their preferred text size in the Text Size section of their devices' Display & Brightness settings.

Settings App → Display & Brightness → Text Size

The available text sizes the user can choose from are:
xSmall, Small, Medium, Large, xLarge, xxLarge, xxxLarge

Available Dynamic Type sizes
The default dynamic text size is Large

In the Accessibility settings, users can further customize their experience by setting a Larger Accessibility Size for those with visual impairments.
This feature enlarges text even more to enhance readability.

Settings App → Accessibility → Display & Text Sizes → Larger Text → Larger Accessibility Sizes

The available text sizes the user can choose from are:
xSmall, Small, Medium, Large, xLarge, xxLarge, xxxLarge, AX1, AX2, AX3, AX4, AX5

Available Dynamic Type sizes with Larger Accessibility Sizes

In this article, we will explore how to support Dynamic Type in both UIKit and SwiftUI to create more inclusive and user-friendly apps. Supporting Dynamic Type demonstrates not only your commitment to accessibility but also to user-centric design, enhancing users’ satisfaction.

Native iOS apps with xxxLarge Text Size

How to support Dynamic Type

If you’re using the text styles for system fonts provided by SwiftUI and UIKit, Dynamic Type is supported by default and also for larger accessibility type sizes.

The text style defines how text is utilized, such as whether it serves as a headline, body content, or title, and ensures consistent sizing across all apps using it. There are eleven different text styles:

  1. Large Title
  2. Title
  3. Title 2
  4. Title 3
  5. Headline
  6. Subheadline
  7. Body
  8. Callout
  9. Caption 1
  10. Caption 2
  11. Footnote
The different available Text Styles

There are also two more Text Styles in SwiftUI that are currently in beta:

  1. Extra Large Title
  2. Extra Large Title 2

By using the system's predefined Text Styles, the default font, San Francisco, will be used and it will consider the chosen text style's default size. Then this size will be adjusted according to the user's selected text size preference, resulting in the final font size used for rendering the text on the screen.

The Human Interface Guidelines provide details on how text styles adapt according to every dynamic type size.

Every Text Style available scaled according to every Dynamic Type Size

Now, let's explore how to support Dynamic Type in UIKit and SwiftUI.

Subscribe to become a free member or log in for full access.