feat(ios) Accessibility Deferral Element and additions#598
Draft
RoyalPineapple wants to merge 2 commits intomainfrom
Draft
feat(ios) Accessibility Deferral Element and additions#598RoyalPineapple wants to merge 2 commits intomainfrom
RoyalPineapple wants to merge 2 commits intomainfrom
Conversation
3511a17 to
9d4dd5b
Compare
fe80b79 to
3eb1400
Compare
80b442d to
025d5b2
Compare
RoyalPineapple
commented
Dec 16, 2025
BlueprintUIAccessibilityCore/Sources/AccessibilityComposition.swift
Outdated
Show resolved
Hide resolved
RoyalPineapple
commented
Dec 16, 2025
BlueprintUIAccessibilityCore/Sources/AccessibilityComposition.swift
Outdated
Show resolved
Hide resolved
RoyalPineapple
commented
Dec 16, 2025
e1e19d9 to
c94d466
Compare
RoyalPineapple
commented
Jan 28, 2026
BlueprintUIAccessibilityCore/Sources/AccessibilityDeferral.swift
Outdated
Show resolved
Hide resolved
RoyalPineapple
commented
Jan 28, 2026
BlueprintUIAccessibilityCore/Sources/AccessibilityDeferral.swift
Outdated
Show resolved
Hide resolved
RoyalPineapple
commented
Jan 28, 2026
BlueprintUIAccessibilityCore/Sources/AccessibilityDeferral.swift
Outdated
Show resolved
Hide resolved
RoyalPineapple
commented
Jan 28, 2026
BlueprintUIAccessibilityCore/Sources/AccessibilityComposition.swift
Outdated
Show resolved
Hide resolved
a4cc843 to
ee29332
Compare
RoyalPineapple
commented
Jan 29, 2026
|
|
||
| func replaceContent(_ content: [AccessibilityDeferral.Content]?) { | ||
| deferredAccessibilityContent = content | ||
| internal func replaceContent(_ content: [AccessibilityDeferral.Content]?) { |
Collaborator
Author
There was a problem hiding this comment.
moving this internal as it doesn't need to be the responsibility of the consumer and this removes some foot guns
72fcecd to
9ce750c
Compare
… element This introduces comprehensive accessibility deferral improvements: - Add ReceiverContainer element to expose deferred accessibility content - Add FrameProvider to centralize accessibility frame handling - Add merge() method to combine accessibility representations - Apply container frames and corner radius to accessibility paths - Refactor Receiver protocol with updateDeferredAccessibility callback - Make CombinableView extensible and add mergeValues support - Update array extensions to package visibility Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
9ce750c to
d3c997d
Compare
RoyalPineapple
commented
Jan 29, 2026
|
|
||
| /// Custom content that may be supplied in addition to the deferred content | ||
| var customContent: [Accessibility.CustomContent]? { get set } | ||
| var customContent: [BlueprintUI.Accessibility.CustomContent]? { get set } |
Collaborator
Author
There was a problem hiding this comment.
not sure we need this
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.
Summary
This PR enhances the accessibility deferral system with comprehensive improvements to frame handling and element composition.
Key Changes
AccessibilityDeferral.ReceiverContainerallowing arbitrary elements to receive deferred accessibility content without needing to conform to theAccessibilityDeferral.Receiverprotocol directlymerge()method onCompositeRepresentationto combine accessibility values from multiple sourcesReceiverprotocol withupdateDeferredAccessibility(frameProvider:)callback for frame-aware receiversCombinableViewextensible (changed fromfinalclass) and addsmergeValuesproperty for more flexible accessibility compositionTechnical Details
The
FrameProviderstruct provides a unified API for accessibility frame handling that enables UIView-based frame passthrough without taking a strong reference to the backing view.The
ReceiverContainerwraps any element and handles deferred accessibility application automatically, simplifying the integration of accessibility deferral in complex element hierarchies.