Repository navigation
Toolbar Selection Accessibility
確認日: 2026-10-11(JST)。Issue #72のiPadで、編集ボタンの選択件数をaccessibilityValueだけから取得するUI testがtimeoutした。編集ボタンのaccessibilityLabelへ件数を含め、iPhoneとmacOS/iPad共通toolbarで日英の文言をそろえた。英語は Edit Selected, 2 selected、日本語は 選択した2件を編集。既存identifier editSelectedMediaButton は維持する。
macOSでは外側ButtonのaccessibilityLabelだけを変更しても、native toolbarのAXに内側 PanelToolbarLabel.title の旧文言 Edit Selected が現れた。既存appと同じbundle IDの競合を切り分けた専用IDコピーでも同じ失敗を再現し、対象Debug binaryに新count文言と最新sourceが含まれることを確認した。
内側titleへ同じLocalizedStringKeyの件数文言を渡す1行だけを隔離copyで比較したところ、AXに Edit Selected, 2 selected が現れ、閉じる→別選択で再表示の同じcaseが40.492秒で成功した。この変更を共通toolbarへ適用した。iPhoneの表示titleは維持し、件数付きaccessibilityLabelを使う。画面のinf rect警告や他windowのinterruption検出は成功runにも現れたため、件数label失敗の原因とは扱わない。
macOS Debugは専用bundle ID/ad-hoc署名のcopy、Xcode27.1 RC/Swift6/arm64、parallel testing OFF/coverage OFFで、以下の4操作を確認した。copy固有のbundle IDと署名を、製品sourceの変更と区別して記録する。
| 対象操作 | 成功runの秒数 | 確認内容 |
|---|---|---|
| 一括編集を閉じ、別選択で再表示 | 36.958 | 英語の件数2→1追随、遅い編集可否確認の後も現在の選択を表示 |
| 一括保存を中止 | 44.098 | 進捗2 of 3からcancel、1 updated/2 unprocessed、原本とmodel3件の正確一致 |
| ライブラリのソート・検索・選択 | 29.223 | 英語件数labelと大量選択の変更 |
| 行をドラッグして6件選択・編集 | 26.544 | 明示ja/ja_JPで 選択した6件を編集 を取得 |
最初の4件runは件数labelまたはロケールの期待不一致で失敗した。修正後の3件成功runと、後述の保存中止1件成功runを組み合わせて最終4操作の結果とする。1つのxcresultが4件全成功だったとは記録しない。
iPhone17e/iPad Pro13 M5のiOS27.0 Simulatorでは、関連2 UI caseがそれぞれ105.281秒/97.453秒で成功し、件数2/1/3をAX labelから確認した。共通toolbarの最終内側title変更後もiPadの閉じる→再表示caseが41.554秒で成功し、2→1追随を確認した。日英文言の単体テストも成功している。これらはAX情報の確認で、実機VoiceOverの音声聴取や利用者の操作遅延の計測ではない。
macOSの件数label修正後の中止caseでは、CancelがScrollViewのviewport外でもXCTestのisHittableがtrueで、合成clickが中止操作へ届かなかった。最大3回のscrollと有限/非空/viewport内のframe確認を加えた。結果と原本のStaticTextはlabel/valueの正確一致、閉じるボタンは同名Touch Bar要素との重複を避けてWindow内に限定した。保存の製品コードは追加変更していない。
最終caseはcancel→1件更新/2件未処理→原本 Stopped bulk title|UI Test Track 2|UI Test Track 3 の正確一致→閉じる→model3件の一致まで成功した。target SwiftLintは0違反/exit0で、baselineへ追加していない。元ログとxcresultはローカルに保持し、確認に使った対象行の抜粋/summary/source・product hashはローカルに保全する。無関係な他appが写った全画面画像・movieと全AX dumpは公開しない。
実装と対象テストはPR #77の BulkMetadataEditabilityUITests とライブラリ操作のUIテストを参照する。再確認はmacOS/iPhone/iPadで対象操作だけを実行し、選択件数2→1と日英のAX labelを照合する。日本語drag条件は起動localeをja/ja_JPに固定する。保存中止では2件目の書込前へasync待機を置き、Cancelのframeがviewport内にあることを確認して操作し、結果・原本タグ・再表示modelの3つを独立して照合する。ログ/xcresultと検証コピーのhashはローカルに保全した。