Skip to content

Initial Release of Version 1.0.0

Latest

Choose a tag to compare

@SoundBlaster SoundBlaster released this 24 Aug 22:32
· 8 commits to main since this release
ad123fb

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 accessibilityPrefix with a default empty string
  • Developed utility to compose accessibility IDs with deduplication of duplicate tail components
  • Implemented AccessibilityIdentifierModifier ViewModifier 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_DEBUG flags 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.