Skip to content

TeamTalk VoiceOver Client – VoiceOver automation for accessibility testing #41

Description

@fla-rion

Hi! I'm Florian, developer of the TeamTalk VoiceOver Client — an open-source Python (wxPython/PySide6) TeamTalk 5 client built specifically for VoiceOver (macOS), NVDA/JAWS (Windows), and Braille display users.

Project: https://github.com/fla-rion/TeamTalk-VO-Client

Why I'm reaching out

Our app lives or dies by VoiceOver compatibility. We apply runtime PyObjC patches to wxPython's Objective-C classes to ensure VoiceOver announces controls correctly — roles, labels, list rows, etc. Right now, we verify this entirely by hand with a Braille display and VoiceOver running.

We'd love to move toward automated VoiceOver testing and your tooling around VoiceOver.js and screen reader automation caught my eye.

What we'd like to explore

  • Using automated VoiceOver interaction to verify our accessibility patches work correctly after each release
  • Building regression tests that check AX roles and labels on our native macOS UI
  • Any patterns or tools from this repo that could apply to native macOS app testing (not just web)

Our current approach

Our accessibility patches are in src/ui/a11y.py. We use objc.classAddMethod (PyObjC) to globally patch Objective-C UI classes at startup.

Questions

  1. Does your tooling support native macOS apps, or is it primarily web/browser focused?
  2. Are there examples of automated VoiceOver tests for desktop Python apps?
  3. Interested in collaboration or sharing accessibility testing patterns?

Would love to connect with others in the accessibility automation space. Happy to share what we've learned about VoiceOver + wxPython on macOS.

Thanks!
— Florian / TeamTalk VoiceOver Client

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions