not found

Rule ID: dynamic-type
Ruleset: attest-ios 1.0
User Impact: Critical
WCAG: 1.4.4

Accessibility testing for dev teams - No experience required

Find and fix up to 80% of accessibility issues with axe DevTools Pro. Get started with your free trial today. No credit card needed.

Compliance Data & Impact

User Impact

Critical
Minor
Critical

Disabilities Affected

  • Low Vision
  • Mobility
  • Cognitive

Requirement(s)

  • Best Practice

WCAG Success Criteria

  • 1.4.4 Resize text

Section 508 Guidelines

  • 1194.31.b Low vision accessibility
  • 1194.21 (b) Don't disrupt product or OS accessibility features
  • 1194.26.b Touch screen input method compliance

How to Fix the Problem

To ensure the app's UI scales correctly after a user-initiated system font size setting change:

  1. Set a default large font size in the device's accessibility settings.
    • On an iOS device choose "Larger Text" and adjust the font size to a noticeably larger setting.
  2. Open the app and ensure the font size has increased appropriately, and remains readable and usable.
  3. Alternatively, check if there is an in-app font size control or option. If so, the user must be able to increase the default size by at least 200% while keeping the text readable and usable.

Note:

Do NOT use zoom or screen magnification.

The screen MUST be readable and functional when text is set to 200% of its initial size.

The iOS accessibility settings allow users to set their text size preferences to larger font sizes. Apps shouldn't override these user settings.

Use built-in text styles whenever possible. The built-in text styles display content in ways that are visually distinct, while retaining legibility. These styles are based on the system fonts and allow you to take advantage of key typographic features, such as Dynamic Type, which automatically adjusts tracking and leading for every font size.

Implement accessibility features for custom fonts. System fonts automatically react to accessibility features, such as when bold text is enabled. Apps using custom fonts should implement the same behavior by checking whether accessibility features are enabled and registering for notifications when they change.

Ensure layouts are flexible. Layouts must not clip text when a user has chosen larger font sizes. If the content doesn't fit when resized, provide horizontal or vertical scrolling so the user can access all the content and the functionality.

Good Example: Text size adjusts to user settings

An app's text size before enlarging:

Screenshot of normal size text in an iOS app

And after a user adjusts the text size in the device settings:

Screenshot of the larger text option in the accessibility settings, with the slider a large font size Screenshot of text about double the normal size in the same iOS app as the previous example

How to Test:

  1. Increase the device's text size in General > Accessibility > Larger Text.
  2. Ensure the app's text size has increased to match the revised setting.
  3. If any content has become truncated ensure users are able to scroll vertically or horizontally to access the content.
  4. Ensure all the content remains functional and operable.

Why it Matters

Many people have difficulty reading and/or interacting with small text size on a device's screen. This could be because they have a visual impairment such as low vision.

When text is resized by the user of an app for readability, it must not disable the app's functionality as a result of zooming to a percentage (such as 200%) of the original size.

When it is necessary for a user to resize text in order to read it, system fonts should automatically react to it. Apps using custom fonts should implement the same behavior by checking whether accessibility features are enabled and registering for notifications when they change. Apps implementing custom fonts should attempt to match the accessibility behavior of the system fonts.

Rule Description

The Algorithm (in simple terms)

Detects which UIViews contain text that do not change size according to user preference. Only views with text that are capable of resizing will pass. Views without text will be inapplicable.

Resources

Was this information helpful?

You have already given your feedback, thank you..

Your response was as follows:

Was this information helpful?
Date/Time feedback was submitted: