Skip to content

Kurdish (Sorani) text broken in SymbolLayer — ە (U+06D5) does not join with adjacent letters #2414

Description

@yusfrubar-sketch

Environment

  • Xcode version: 26.4
  • iOS version: 26.4
  • Devices affected: iPhone 16, iPhone 15
  • Maps SDK Version: 11.x (latest)

Observed behavior and steps to reproduce

Kurdish (Sorani) text in SymbolLayer labels renders with broken/disconnected
letters. The character ە (U+06D5, Arabic Letter Ae) does not join with adjacent
letters.

This character appears in almost every Kurdish word, making place names unreadable
for 8+ million Kurdish speakers.

Steps to reproduce:

  1. Create a SymbolLayer with textField containing Kurdish text, e.g. "بنکەی
    پۆلیسی" (police station)
  2. The ە character renders disconnected from adjacent letters
  3. Words appear broken with gaps

Screenshots attached:

  • Broken rendering on iOS SDK
  • How Kurdish text should look (correct rendering)
Image

Expected behavior

Kurdish text should render with proper Arabic script shaping, where ە joins
correctly with adjacent letters — the same way it works on Mapbox GL JS using
the mapbox-gl-rtl-text plugin.

The web version handles Kurdish correctly. The iOS SDK does not.

Notes / preliminary analysis

  • The mapbox-gl-rtl-text plugin is available for GL JS but not for iOS SDK
  • Kurdish (Sorani) uses Arabic script with additional characters (ە ۆ ێ ڕ ڵ ڤ)
  • The character ە (U+06D5) is the primary issue — it has no Unicode Presentation
    Forms, so the iOS SDK cannot shape it
  • Arabic text (ة U+0629) renders correctly — only Kurdish ە breaks
  • This affects millions of Kurdish users in Iraq, Iran, Syria, and Turkey

Feature request: Please add RTL text shaping support to the iOS Maps SDK,
equivalent to the web mapbox-gl-rtl-text plugin, with proper handling of Kurdish
characters.

Image

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions