Repository navigation
fix(ui): clear the dev-red journey failures in Design, Library and Photo - #734
Merged
Merged
Conversation
Design: identifiers on Add Page, Delete Page, the fill/text color row, the empty state's New File and SuiteUI's document title menu; the hidden layer row uses SuiteColor.textSecondary and the multi-select rows are no longer disabled, so their labels keep 4.5:1. Library: the focusable loupe is a labelled accessibility container, not a role-less element read as static text. Photo: Select > All hands Command-A to the text field being edited instead of swallowing it as a disabled item while a sheet is up.
Contributor
|
Fast lane: merged into dev (49 lines, 7 files, Fast-Check marker). |
Closed
github-actions Bot
pushed a commit
that referenced
this pull request
Oct 14, 2026
…upe's (#735) Round 2 for #731. After #734, CI run 38544327339 on dev (5d47ef2) passes the Design and Photo journeys. One failure is left: LibraryJourneyTests testLoupeStepsAndReturnsToTheGrid, `staticText 'library.loupe.position' at [192,117,648,560], contrast 1.52:1`. Cause: the loupe's photo was `accessibilityHidden`, so the position readout Text was the only accessibility element inside the focusable loupe. SwiftUI turned that Text into the focusable element itself, at the whole loupe's 648x560 frame, so `.contain` added no group and the audit measured the photo against the artboard as the text's ink. Fix (LibraryLoupe.swift only): - The photo is an image element, labelled with the photo's name and identified as `library.loupe.photo`. - The readout overlay comes after the focus and key modifiers, so it is never the focusable element. It keeps its own frame on the glass readout. - The loupe stays a container labelled "Loupe" with `library.loupe`, which the journey finds. Proof: the Library journey in the next macOS run on dev. No baseline, test or check was changed. Snapshots touched: library-loupe.png (ui-screens); the pixels are unchanged. Fast-Check: pass Head: d4287bf ---
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.
Fixes the four macOS journey failures left on dev at 44fde68 (CI run 38535591962). Refs #731.
Design (testDrawShapesAddTextAndSave, testLaunchShowsWindowShell)
design.page.add), Delete Page (design.page.delete), the Fill / Text Color row's well and hex field (design.fill), the empty state's New File (design.new-file), and SuiteUI's document title menu (suite.document-menu). The title menu showed up three times ('Untitled', 'journey.design', 'Design'), so this removes 8 distinct violations, which brings Design to 22..disabled(true). They hold no control, so disabling them only dimmed the Frame and Fill labels to 40%. The rows aren't disabled any more, the tooltip and the hint below still give the reason, and the value usesSuiteColor.textSecondary..secondaryon the highlighted row. It now usesSuiteColor.textSecondary, the same token fix(design): Layers rows carry identifiers and the section headers meet 4.5:1 #598 and fix(suiteui): sidebar section titles in the readable secondary text token #599 used. On the measured row gray (70,70,70) that reads 4.74:1.Library (testLoupeStepsAndReturnsToTheGrid): the loupe view is
.focusable()and had no accessibility role, so SwiftUI exposed the whole 648x560 view as one unlabeled element. XCUITest typed it asstaticText, and the contrast check measured the photo against the artboard as if it were text ink (1.52:1). The loupe is now.accessibilityElement(children: .contain)with the label "Loupe": a group with the position readout inside it. The journey still finds it bylibrary.loupe.Photo (testStraighten): Select > All holds Command-A, and #575 disabled it while a sheet was up. A disabled menu item still takes its key equivalent, so the Angle field never got Command-A and typing "3" gave "03". Select > All is now disabled only when a focused window has no image. When an editable text view is first responder, its action sends
selectAll:down the responder chain. Otherwise it selects the canvas, and never while a sheet or alert is up. The journey's later step, Command-A selecting the canvas after the sheet closes, still holds.Proof: the Design, Library and Photo journeys in the next macOS run on dev. No baseline, test or check was changed.
Snapshots touched: design-multi-select.png, design-layer-hidden.png, library-loupe.png (ui-screens). No AppSnapshotTests PNG changes.
Docs checked with apple-docs: AccessibilityChildBehavior.contain, NSText.selectAll(_:).
Fast-Check: pass
Head: 9e1acc1