accessibility-snapshot-ios icon indicating copy to clipboard operation
accessibility-snapshot-ios copied to clipboard

A library for generating snapshot images of components managed by Playbook with accessibility labels.

Playbook

PlaybookAccessibilitySnapshot

Swift5 CI Status Lincense
Release Swift Package Manager

PlaybookAccessibilitySnapshot is an extension to Playbook that uses AccessibilitySnapshot to produce snapshots with accessibility information such as activation points and labels.


Usage


AccessibilitySnapshot

final class AccessibilitySnapshotTests: XCTestCase {
    func testTakeAccessibilitySnapshot() throws {
        let directory = ProcessInfo.processInfo.environment["SNAPSHOT_DIR"]!

        try Playbook.default.run(
            AccessibilitySnapshot(
                directory: URL(fileURLWithPath: directory),
                clean: true,
                format: .png,
                keyWindow: UIApplication.shared.windows.first { $0.isKeyWindow },
                devices: [.iPhone11Pro(.portrait)]
            )
        )
    }
}
snapshot
Sample Before After
sample before after

Integration with Third-party Tools

The generated snapshot images with accessibility information can be used for more advanced visual regression testing by using a variety of third party tools.

percy

percy

Requirements

  • Swift 5.9+
  • Xcode 15.0+
  • iOS 13.0+

Installation

Swift Package Manager

Select Xcode menu File > Swift Packages > Add Package Dependency... and enter repository URL with GUI.

Repository: https://github.com/playbook-ui/accessibility-snapshot-ios.git

Development

  1. Run make proj at the root of this repository.
  2. Open Example/Example.xcworkspace via Xcode.

License

Playbook is released under the Apache 2.0 License.


Playbook