Skip to content

[WIP] Native checks #327

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open

[WIP] Native checks #327

wants to merge 6 commits into from

Conversation

ceceppa
Copy link
Member

@ceceppa ceceppa commented Aug 7, 2025

Description

Accessibility checks are now primarily performed on the native side, allowing users to rely directly on our custom components (such as Pressable, Text, etc.) for immediate feedback about common accessibility issues. Additionally, this change ensures broader compatibility, allowing the library to integrate seamlessly with any other React Native UI library.

A new Playground app has also been added, providing users a hands-on environment to explore the library’s capabilities, better understand accessibility issues identified by AMA, and practice fixing them interactively.

Extras

  • Move each extra component in a separate package.
    • BottomSheet
  • Make each separate container independent of the core
    • Use console.error for failed checks, if core is not available

Feedback View

  • Visual feedback of the offending components
  • Allow the user to scroll through the error and warnings
  • Popup informs the user on the issue and how to fix it
A screenshot of AMA Playground testing pressable elements

TODO

  • Add a thick border for the popup using the same color of the severity

Checks

Pressable

  • No a11y label
  • No a11y role
  • Size too small
  • Contrast
  • No "pressed" callback + no disabled?

Text

  • Contrast
  • Long numbers, i.e. Possibile phone number or bank account?

Headers

  • Missing headers: No headers in the current screen

UI Interaction

Check if is possible to hijack pressable events to see if its triggering did cause some UI change. For example some new element appeared or changed...
This could allow AMA to possible detect:

  • Missing aria status on the component
  • Missing focus change

Forms

  • Missing Label
  • Missing label during onChange?
  • Keyboard trap

Close #324

Type of Change

  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

How Has This Been Tested?

Using the built-in playground app

Checklist: (Feel free to delete this section upon completion)

  • I have included a changeset if this change will require a version change to one of the packages.
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • I have run all builds, tests, and linting and all checks pass
  • I have added tests that prove my fix is effective or that my feature works
  • My changes generate no new warnings
  • Any dependent changes have been merged and published in downstream modules

ceceppa and others added 4 commits July 17, 2025 15:12
* expo module

* expo module

* Initial iOS & Android error check implementation

* Prettier fix

* move example to playground

* make clear error

* improve playground app
* fixes to get AMA playground running. still WIP

* fix build
Copy link

vercel bot commented Aug 7, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
react-native-ama ✅ Ready (Inspect) Visit Preview 💬 Add feedback Aug 8, 2025 1:40pm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Move component checks to the Native side
2 participants