Repository navigation
Release Notes
Version 1.0.0 - Initial Release
Summary of What We've Accomplished
This initial release provides a Swift Package Manager (SPM) package for enhancing SwiftUI accessibility testing by composing hierarchical accessibility identifiers in a stable and maintainable way.
Key Features
Phase A — Package Scaffold
- Created full SPM structure for integration
- Defined supported platforms and Swift tools version
- Added DocC documentation bundle for easy browsing of API docs
Phase B — Core API (Environment + Modifier)
- Introduced environment key
accessibilityPrefixwith a default empty string - Developed utility to compose accessibility IDs with deduplication of duplicate tail components
- Implemented
AccessibilityIdentifierModifierViewModifier to:- Apply composed accessibility identifiers on views
- Set accessibility environment for children
- Mark parent containers as
.accessibilityElement(children: .contain)
- Added public View extensions:
nestedAccessibilityIdentifier(_:)a11yRoot(_:)
- Optional debug print hook enabled via
DEBUG && NESTED_A11Y_DEBUGflags for troubleshooting
Phase C — Tests & Sample
- Comprehensive unit tests for composition logic and modifier behavior
- UI test template to verify queries by composed accessibility identifiers
- Example application demonstrating practical usage and benefits
Phase D — Documentation & Compliance
- DocC pages outlining package benefits, API usage instructions, and important limitations
- README file with quick start guide for easy onboarding
- License file included and GitHub Actions configured for continuous integration
Acceptance Test Checklist
- Root, child, and leaf identifiers compose into correct hierarchy strings
- Duplicate tail components are properly deduplicated
- Deeply nested views generate stable and correct composed IDs
- Buttons and interactive elements receive the correct
.accessibilityIdentifier - All containers with nested children are marked with
.accessibilityElement(children: .contain)for correct accessibility hierarchy
About NestedSwiftUIA11y
NestedSwiftUIA11y is designed to improve the maintainability, readability, and robustness of UI tests in SwiftUI apps by providing a hierarchical approach to accessibility identifiers. This approach allows tests to rely on meaningful composed identifiers that reflect the UI structure rather than brittle flat strings.
Thank you for using NestedSwiftUIA11y! We welcome feedback and contributions to continue improving this package.