Skip to content

The Future of AccessibilitySnapshot #256

@soroushsq

Description

@soroushsq

We're planning some pretty big improvements to this library, and we wanted to post about our plans here to prep users of the library and to gather feedback about what's important to members of the community. Because AccessibilitySnapshot has never reached an official 1.0 version, we'd like to reach that milestone as part of this project.

Central to this library is what we call the "parser", which is a way of determining what VoiceOver will say when pointed at a given view. This is really important for snapshots, but we think it could be a valuable component in lots of other tools. We've started work in #250 to begin extracting this parser into its own module for use in other places.

Priorities

As part of this project, we have a few things we want to build.

  • Fleshing out unsupported accessibility features, like containers, rotors, focus, and hotkeys. If you can't see them in the screenshot, then you can't diff them.
  • Fixing outstanding GitHub issues.
  • Building native SwiftUI snapshotting, using SwiftUI's ImageRenderer.

We also have some more experimental features in the pipeline that we're looking forward to sharing more about soon.

Breaking Changes

AccessibilitySnapshot library follows semantic versioning, so we expect to have code-level breaking changes with every patch release until we hit 1.0. Once we hit 1.0, breaking changes will only happen with major releases.

We may also use the 1.0 release as a chance to make breaking changes to the screenshot rendering and styling. As this will change every single screenshot that you've ever generated, we take these breaking changes very seriously and they will only happen on major version changes.

Contributions

If you'd like to contribute to the library, we would love to see that! Feel free to post in a comment in this issue or make a new issue about something you'd like to work on, and we'd be happy to discuss with you.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions