Repository navigation
fix(macos): name welcome buttons by their title, not title plus keycap - #4720
Merged
Merged
Conversation
The welcome modal's buttons pair a title with a keycap chip and had no explicit label, so accessibility read "Get started for free, Enter". The onboarding parity capture added in #4707 clicks buttons["Get started for free"] and fails on every run since. Label each welcome button with its title; the keycap is a visual hint. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GKHjv2HDx1DFAnG4cfSxcr
tyler-dane
marked this pull request as ready for review
October 22, 2026 03:08
tyler-dane
enabled auto-merge
October 22, 2026 03:08
… panel With the welcome buttons named by title, buttons["Next"] also matched the grid's week "Next" button behind the modal, so the click failed with multiple matches. Query the buttons inside compass-native-welcome-modal. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GKHjv2HDx1DFAnG4cfSxcr
This was referenced Oct 22, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GKHjv2HDx1DFAnG4cfSxcr
Contributor
Author
|
Generated by Claude Code |
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refs #4331
What and why
The macOS
macos-capturejob fails on main and every PR that runs it (for example run 39713732077 on #4719) inNativeParityCaptureTests.testExportParitySurface_onboardingWelcome:#4707 added the second half of that test, which clicks through to the account-choice screen. It queries
window.buttons["Get started for free"], then "Next", then "Start free trial with Google". The welcome modal's button helpers (primaryButton,secondaryButton,quietTextButton,pillButton) render a title plus aShortcutHintChipkeycap with no explicit label. SwiftUI therefore names the button "Get started for free, Enter", which doesn't match the exact query.This PR labels each of those four helpers with its title only (
.accessibilityLabel(title)). That makes the query match, and VoiceOver now reads "Get started for free" instead of appending the keycap text. Nothing visible changes.With the labels fixed,
buttons["Next"]also matched the grid's week "Next" button behind the modal ("Multiple matching elements found"), so the test now queries its three buttons insidecompass-native-welcome-modal. It's the same clicks and the same assertions, scoped to the panel.Verify
VERDICT: PASSfrombun run verify --strict(type-check, lint, knip).bun cli contracts:swift --checkandbun cli desktop:export --checkpass.Not run locally: this cloud session has no Swift toolchain or Xcode, so the UI tests only run in macOS CI. The
parity-screenshotslabel is added separately somacos-captureruns the onboarding test on this PR, which is the check that proves the fix.https://claude.ai/code/session_01GKHjv2HDx1DFAnG4cfSxcr
Generated by Claude Code