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

    Fields

    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