Last active
May 11, 2026 14:42
-
-
Save clarmso/0c6a65541c79d68abaecb1028471291d to your computer and use it in GitHub Desktop.
L10n missing screenshots
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ⏺ Missing screenshots in the 11 failing RTL + Cyrillic locales (upstream repo state) | |
| Login flow — affects all 11 (testLoginDetails) | |
| All 11 locales are missing all 4 Login screenshots: | |
| - CreateLogin | |
| - CreatedLoginView | |
| - CreatedLoginDetailedView | |
| - RemoveLoginDetailedView | |
| That's 44 missing Login screenshots total. | |
| Settings flow — affects 2 of 11 | |
| bg (Bulgarian) and ru (Russian) are additionally missing 3 Settings screenshots each: | |
| - Settings-AddCustomSearchSettings-0 | |
| - Settings-HomeSettings-0 | |
| - Settings-ToolbarSettings | |
| That's 6 more missing Settings screenshots. | |
| Totals | |
| 50 missing screenshots across the 11 RTL+Cyrillic failing locales: | |
| - 44 from testLoginDetails | |
| - 6 from testSettings (Suite1) | |
| Per-locale | |
| ┌────────┬────────────────────────────┬─────────┬────────────────────────┐ | |
| │ Locale │ Script │ Missing │ Areas │ | |
| ├────────┼────────────────────────────┼─────────┼────────────────────────┤ | |
| │ ar │ Arabic (RTL) │ 4 │ Login ×4 │ | |
| ├────────┼────────────────────────────┼─────────┼────────────────────────┤ | |
| │ he │ Hebrew (RTL) │ 4 │ Login ×4 │ | |
| ├────────┼────────────────────────────┼─────────┼────────────────────────┤ | |
| │ fa │ Persian (RTL) │ 4 │ Login ×4 │ | |
| ├────────┼────────────────────────────┼─────────┼────────────────────────┤ | |
| │ ug │ Uyghur (RTL Arabic-script) │ 4 │ Login ×4 │ | |
| ├────────┼────────────────────────────┼─────────┼────────────────────────┤ | |
| │ be │ Cyrillic │ 4 │ Login ×4 │ | |
| ├────────┼────────────────────────────┼─────────┼────────────────────────┤ | |
| │ kk │ Cyrillic │ 4 │ Login ×4 │ | |
| ├────────┼────────────────────────────┼─────────┼────────────────────────┤ | |
| │ sr │ Cyrillic │ 4 │ Login ×4 │ | |
| ├────────┼────────────────────────────┼─────────┼────────────────────────┤ | |
| │ tg │ Cyrillic │ 4 │ Login ×4 │ | |
| ├────────┼────────────────────────────┼─────────┼────────────────────────┤ | |
| │ uk │ Cyrillic │ 4 │ Login ×4 │ | |
| ├────────┼────────────────────────────┼─────────┼────────────────────────┤ | |
| │ bg │ Cyrillic │ 7 │ Login ×4 + Settings ×3 │ | |
| ├────────┼────────────────────────────┼─────────┼────────────────────────┤ | |
| │ ru │ Cyrillic │ 7 │ Login ×4 + Settings ×3 │ | |
| └────────┴────────────────────────────┴─────────┴────────────────────────┘ | |
| L10n screenshot tests — summary | |
| What was broken | |
| testLoginDetails in L10nSuite2SnapshotTests.swift was the test producing 4 Login screenshots | |
| (CreateLogin, CreatedLoginView, CreatedLoginDetailedView, RemoveLoginDetailedView). Three | |
| locale-sensitive bugs caused many locales to be missing some or all of them. | |
| Bugs found and fixed on branch cso/l10n-testLoginDetails-fix | |
| 1. Post-passcode race: the test only checked for the Passwords onboarding "Continue" button before the | |
| system passcode prompt, but the actual flow shows the passcode first. Added a waitForExistence(timeout: | |
| 5) check after the passcode entry — also acts as a settle delay so the Login List query doesn't race the | |
| passcode dismissal. | |
| 2. Hardcoded "p" lookup: tapKeyboardKey(15) types whatever character is at keyboard index 15, which | |
| varies by locale (Latin p, Arabic q, etc.). The test then searched cells.staticTexts["p"] which only | |
| matches on Latin keyboards. Replaced with positional cell lookup. | |
| 3. Wrong Login List cell: the new password-manager UI puts the "Save passwords" toggle at cells[0], with | |
| the credential at cells[1]. Test was tapping cells[0] (the toggle, no-op for navigation). | |
| Final results — 20 target locales, after the fix | |
| ┌──────────────────┬─────────────────────────────────────────────────────────────────────────────────┐ | |
| │ Status │ Locales │ | |
| ├──────────────────┼─────────────────────────────────────────────────────────────────────────────────┤ | |
| │ ✅ 4/4 (fully │ ur (Urdu), da (Danish), fi (Finnish), is (Icelandic), cs (Czech), sk (Slovak), │ | |
| │ fixed) │ ab (Abkhazian) │ | |
| ├──────────────────┼─────────────────────────────────────────────────────────────────────────────────┤ | |
| │ 🟡 1/4 (only │ ja (Japanese), sv-SE (Swedish) │ | |
| │ CreateLogin) │ │ | |
| ├──────────────────┼─────────────────────────────────────────────────────────────────────────────────┤ | |
| │ ❌ 0/4 (still │ ar (Arabic), he (Hebrew), fa (Persian) — RTL ru (Russian), uk (Ukrainian), be │ | |
| │ all missing) │ (Belarusian), bg (Bulgarian), sr (Serbian) — Slavic Cyrillic kk (Kazakh), tg │ | |
| │ │ (Tajik), ug (Uyghur) — non-Slavic Cyrillic-script │ | |
| └──────────────────┴─────────────────────────────────────────────────────────────────────────────────┘ | |
| Patterns | |
| - RTL: only ur (Urdu) worked; ar, he, fa still fail at the very first step (Login List timeout). RTL | |
| layout likely causes springboard.secureTextFields.firstMatch to match the wrong field, so "foo\n" is | |
| typed into something that doesn't satisfy the system auth — the Login List never loads. | |
| - Cyrillic (all flavors, Slavic + Turkic): 8 of 8 still 0/4. Same failure mode as RTL — never gets past | |
| the passcode/auth step. | |
| - CJK: ja captures only CreateLogin then fails later (likely at credential creation form interactions, | |
| possibly the same keyboard-positional tapKeyboardKey issue affecting non-Latin scripts). | |
| - sv-SE outlier: only Latin-script locale in the 1/4 bucket — looked flaky in the batch, possibly | |
| batch-state pollution (other Nordic locales da/fi/is got full 4/4). | |
| ⏺ Summary | |
| - 58 locales complete (all 57 screenshots) | |
| - 42 locales incomplete | |
| - 100 total locale directories | |
| Complete (58) | |
| af, an, ast, az, br, bs, ca, co, cy, de, dsb, en-CA, en-GB, eo, es-AR, es-CL, es-ES, es-MX, et, eu, fr, ga-IE, gd, gl, hr, hsb, hu, ia, id, it, jv, | |
| kab, ko, lt, lv, ml, ms, nb-NO, nl, nn-NO, oc, pl, pt-BR, pt-PT, rm, ro, scn, ses, sl, sq, su, ta, tl, tt, uz, vi, zgh, zh-CN | |
| ┌───────┬───────────────────────────────────────────────────────┬───────────────────────────────────────────────┐ | |
| │ Count │ Locale → Language │ Missing │ | |
| ├───────┼───────────────────────────────────────────────────────┼───────────────────────────────────────────────┤ | |
| │ 56/57 │ zh-TW Chinese (Traditional) │ Settings-main-4 │ | |
| ├───────┼───────────────────────────────────────────────────────┼───────────────────────────────────────────────┤ | |
| │ 56/57 │ pa-IN Punjabi · mr Marathi · hi-IN Hindi · gu-IN │ Settings-AddCustomSearchSettings-0 │ | |
| │ │ Gujarati · bn Bengali · anp Angika │ │ | |
| ├───────┼───────────────────────────────────────────────────────┼───────────────────────────────────────────────┤ | |
| │ 55/57 │ tr Turkish · sv-SE Swedish · sk Slovak · is Icelandic │ CreatedLoginDetailedView, │ | |
| │ │ · fi Finnish · da Danish │ RemoveLoginDetailedView │ | |
| ├───────┼───────────────────────────────────────────────────────┼───────────────────────────────────────────────┤ | |
| │ │ │ Settings-AddCustomSearchSettings-0, │ | |
| │ 54/57 │ te Telugu · kn Kannada · bo Tibetan │ Settings-HomeSettings-0, │ | |
| │ │ │ Settings-ToolbarSettings │ | |
| ├───────┼───────────────────────────────────────────────────────┼───────────────────────────────────────────────┤ | |
| │ 54/57 │ ja Japanese │ CreatedLoginDetailedView, CreatedLoginView, │ | |
| │ │ │ RemoveLoginDetailedView │ | |
| ├───────┼───────────────────────────────────────────────────────┼───────────────────────────────────────────────┤ | |
| │ │ uk Ukrainian · ug Uyghur · tg Tajik · sr Serbian · si │ │ | |
| │ 53/57 │ Sinhala · sat Santali · or Odia · kk Kazakh · ka │ All 4 Login screens │ | |
| │ │ Georgian · hy-AM Armenian · he Hebrew · fa Persian │ │ | |
| │ │ (Farsi) · el Greek · be Belarusian · ar Arabic │ │ | |
| ├───────┼───────────────────────────────────────────────────────┼───────────────────────────────────────────────┤ | |
| │ │ │ 2 Login + 3 Settings │ | |
| │ 52/57 │ ur Urdu · cs Czech │ (-AddCustomSearchSettings-0, -HomeSettings-0, │ | |
| │ │ │ -ToolbarSettings) │ | |
| ├───────┼───────────────────────────────────────────────────────┼───────────────────────────────────────────────┤ | |
| │ 52/57 │ th Thai · ne-NP Nepali · lo Lao │ All 4 Login + │ | |
| │ │ │ Settings-AddCustomSearchSettings-0 │ | |
| ├───────┼───────────────────────────────────────────────────────┼───────────────────────────────────────────────┤ | |
| │ 51/57 │ bg Bulgarian │ All 4 Login + 3 Settings (also has stale │ | |
| │ │ │ extra Settings-BrowsingSettings-1.png) │ | |
| ├───────┼───────────────────────────────────────────────────────┼───────────────────────────────────────────────┤ | |
| │ 50/57 │ ru Russian · my Burmese · km Khmer │ All 4 Login + 3 Settings │ | |
| ├───────┼───────────────────────────────────────────────────────┼───────────────────────────────────────────────┤ | |
| │ 44/57 │ ab Abkhazian │ 13 Settings screens missing │ | |
| └───────┴───────────────────────────────────────────────────────┴───────────────────────────────────────────────┘ | |
| Notable groupings | |
| - RTL languages: ar (Arabic), he (Hebrew), fa (Persian), ur (Urdu) — all in the "all-Login-missing" cluster, likely | |
| a flow that breaks under RTL layout. | |
| - Indic family (pa, mr, hi, gu, bn, te, kn, or, ne, sat, anp, ur, si): heavily represented in | |
| Settings-AddCustomSearchSettings-0 failures — search-engine availability or Bing/Yahoo button text not localized. | |
| - Cyrillic-script languages (ru, uk, be, bg, sr, kk, tg, ug): most show full Login-flow failures, suggesting a | |
| single text-input/keyboard interaction breaks for those keyboards. | |
| - CJK (ja, zh-TW): isolated/light failures — only ja affects Login flow. | |
| - Nordic + Central European (da, fi, is, sk, sv-SE, tr, cs): clean failures of just CreatedLoginDetailedView + | |
| RemoveLoginDetailedView — likely a single test step. | |
| - ab (Abkhazian): outlier — Settings menu navigation appears to break entirely, since iOS has no Abkhazian system | |
| locale to fall back on cleanly. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment