fix(WhereUI): summarize calendars and widgets for VoiceOver - #256
Conversation
| } | ||
|
|
||
| public init(regions: Set<Region>, days: Int) { | ||
| precondition(regions.count > 1, "A region combination requires at least two regions.") |
There was a problem hiding this comment.
IMO a thing we should assert in debug and otherwise log in prod
There was a problem hiding this comment.
Why isn't this listing the whole description?
There was a problem hiding this comment.
Posted by an AI agent on kyleve’s behalf.
This is an AccessibilitySnapshot renderer bug rather than a truncated widget value. The widget exposes the full label and value, but the SwiftUI legend compresses the description to one line. I reproduced it at the pinned 0.12.0 revision and opened cashapp/AccessibilitySnapshot#355: cashapp/AccessibilitySnapshot#355
The upstream regression exercises the real snapshot container and fails without the fix. Allowing the description to use its multiline intrinsic height renders the full value across two lines.
Summary
Why
Calendar day cells and month footer rows were individually reachable, producing hundreds of VoiceOver stops for a year. Year-total widget rows had the same problem, while Today and Lock Screen variants used inconsistent implicit combinations.
Review focus
Compatibility
No persistence, backup, CloudKit, or
WidgetSnapshotwire format changes.Testing
./swiftformat --lint./xcstrings --lint./test --all— 1,863 tests passedWidgetFeaturesViewSnapshotTestsandYearViewSnapshotTests— 2 tests passed after reviewing the containing-view accessibility references./sync-agents