Skip to content

iOS: Accessibility: Fix plugins can't be installed using VoiceOver #11931

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

Conversation

personalizedrefrigerator
Copy link
Collaborator

@personalizedrefrigerator personalizedrefrigerator commented Mar 5, 2025

Summary

This pull request fixes an issue where buttons within an installable plugin's card were not focusable using VoiceOver (they worked as expected using TalkBack on Android). If VoiceOver is considered a "keyboard interface", this may be related to WCAG 2.2's SC 2.1.1.

The issue was caused by the card wrapper having accessible=true, which prevented VoiceOver from focusing elements within the card. With this pull request, the card is marked accessible=true only when the full card is clickable (when the plugin is already installed).

Testing plan

Manual testing (iOS 18.1 simulator):

  1. Move VoiceOver focus to an installed plugin's card.
  2. Activate it with ctrl-option-space.
  3. Verify that this shows a dialog.
  4. Close the dialog and search for "Rich" in the plugin search.
  5. Move focus to Rich Markdown's 'Install' button.
    • Verify that VoiceOver describes this button as "Install Rich Markdown, button".
  6. Install Rich Markdown using VoiceOver (activate the button with ctrl-option-space).
  7. Verify that this installs Rich Markdown.

This commit fixes an issue where buttons within an installable plugin's card were not focusable using VoiceOver (they worked as expected using TalkBack on Android).

The issue was caused by the card wrapper having been marked as accessible=true, which prevented VoiceOver from focusing elements within the card. With this change, the card is only marked as accessible when it's clickable (when the plugin is already installed).

Manual testing (iOS 18.1 simulator):
1. Move VoiceOver focus to an installed plugin's card.
2. Activate it with ctrl-option-space.
3. Verify that this shows a dialog.
4. Close the dialog and search for "Rich" in the plugin search.
5. Move focus to Rich Markdown's 'Install' button.
   - Verify that VoiceOver describes this button as "Install Rich Markdown, button".
6. Install Rich Markdown using VoiceOver (activate the button with ctrl-option-space).
7. Verify that this installs Rich Markdown.
@personalizedrefrigerator personalizedrefrigerator added iOS accessibility Related to accessibility labels Mar 5, 2025
@laurent22 laurent22 merged commit 0430ccb into laurent22:dev Mar 8, 2025
7 checks passed
@personalizedrefrigerator
Copy link
Collaborator Author

Related: #11661

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

Successfully merging this pull request may close these issues.

2 participants