Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FB16266943: GridRow should support combining for VoiceOver #596

Open
samhenrigold opened this issue Jan 8, 2025 · 0 comments
Open

FB16266943: GridRow should support combining for VoiceOver #596

samhenrigold opened this issue Jan 8, 2025 · 0 comments

Comments

@samhenrigold
Copy link

  • Date: 2024-01-08
  • Resolution: Open
  • Area: SwiftUI
  • OS: iOS
  • Type: Incorrect/Unexpected Behavior
  • Keywords: accessibility,
  • What build does the issue occur on? iOS 18.1 Seed 6 (22B5069a)
  • Where does the issue occur? On device

Description

GridRow does not support combining child views for VoiceOver accessibility using .accessibilityElement(children: .combine) which can create a poor VoiceOver experience.

To reproduce:

  1. Create a Grid, add a GridRow with more than one subviews
  2. Add .accessibilityElement(children: .combine) to the GridRow
  3. Enable VoiceOver and interact with the view

Expected result:
VoiceOver should read all combined children in a GridRow as a single element. For example, "Revenue: $500" should be read as one announcement.

Actual result:
VoiceOver reads each GridRow child separately, requiring multiple swipes to hear related information. For example, user must swipe once to hear "Revenue" and swipe again to hear "$500".

Example:

struct ContentView: View {
    var body: some View {
        Grid {
            GridRow {
                Image(systemName: "dollarsign")
                    .accessibilityHidden(true)
                Text("Revenue")
                Text("$500")
            }
            .accessibilityElement(children: .combine)
            
            GridRow {
                Image(systemName: "chart.line.uptrend.xyaxis")
                    .accessibilityHidden(true)
                Text("Growth")
                Text("27%")
            }
            .accessibilityElement(children: .combine)
        }
    }
}

Related to FB11441750 (SwiftUI GridRow items can’t be combined for VoiceOver support)

Files

ScreenRecording_01-08-2025.12-26-16_1.MP4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant