Skip to content

fix(ios): stop repeating ChoiceSet label on every radio/checkbox item#659

Open
hggzm wants to merge 1 commit intomicrosoft:mainfrom
hggzm:clean/fix-choiceset-label-repeat-483
Open

fix(ios): stop repeating ChoiceSet label on every radio/checkbox item#659
hggzm wants to merge 1 commit intomicrosoft:mainfrom
hggzm:clean/fix-choiceset-label-repeat-483

Conversation

@hggzm
Copy link
Copy Markdown
Collaborator

@hggzm hggzm commented Mar 18, 2026

Fork-based PR (no Azure Pipelines CI). When ready for CI, push branch to upstream as users/hggzm/clean/fix-choiceset-label-repeat-483 and recreate.

History: upstream PRs #628 (closed)

Summary

VoiceOver was repeating the parent ChoiceSet label (e.g. "What color do you want?") with every radio button and checkbox item in expanded ChoiceSet inputs. This made navigation verbose and redundant since the label is already announced as a separate accessible element above the list.

Changes

  • ACRChoiceSetViewDataSource.mm: Removed _accessibilityString (parent label) prefix from individual cell accessibility labels in configureCellForAccsessibility

Before

Each item announces: "What color do you want?, Red, radio button"

After

Each item announces: "Red, radio button"

The parent label is still accessible as a heading element above the list.

Testing

  1. Open a card with an expanded ChoiceSet (radio or checkbox style)
  2. Enable VoiceOver
  3. Navigate through the radio/checkbox items
  4. Verify each item announces only its own text and role, not the parent label

The expanded ChoiceSet renderer was prepending the parent label
(e.g. 'What color do you want?') to every radio button and checkbox
accessibility label, causing VoiceOver to repeat it redundantly with
each item. The parent label is already announced as a separate
accessible element above the list.

Now each item announces only its own text and role, e.g.:
  Before: 'What color do you want?, Red, radio button'
  After:  'Red, radio button'

Fixes microsoft#483
@hggzm
Copy link
Copy Markdown
Collaborator Author

hggzm commented Mar 20, 2026

VoiceOver Accessibility Validation

Automated a11y pipeline validates this fix using real UIAccessibility API data.

Annotated A11y Overlay

Annotated screenshot

  • 87 total accessible elements captured from rendered cards via XCUIElement queries
  • accessibilityLabel, accessibilityValue, accessibilityFrame, accessibilityTraits verified
  • Green numbered overlay boxes show exact VoiceOver focus rectangles
  • Element data matches what VoiceOver reads at runtime

Full transcript | Gallery

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

Successfully merging this pull request may close these issues.

1 participant