Skip to content

Fix VoiceOver labels in share extension folder picker - #4111

Merged
mpivchev merged 1 commit into
nextcloud:masterfrom
web3blind:fix-share-extension-voiceover-folders
May 28, 2026
Merged

Fix VoiceOver labels in share extension folder picker#4111
mpivchev merged 1 commit into
nextcloud:masterfrom
web3blind:fix-share-extension-voiceover-folders

Conversation

@web3blind

@web3blind web3blind commented May 15, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add an explicit accessibility label to folder cells in the share extension target-folder picker
  • include the visible folder name and metadata text that is already shown in the cell
  • expose folder rows as actionable elements for VoiceOver users

Issue

Fixes #4099

Testing

  • Not run: iOS/Xcode build is not available in this environment
  • Static inspection: verified the share extension uses NCListCell for target folders and now calls setAccessibility(label:value:) for each cell

Accessibility impact

This should let VoiceOver announce the folder name/details while sharing a file into Nextcloud from another app, instead of focusing unnamed selectable rows.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Improves VoiceOver support in the Share Extension鈥檚 target-folder picker by explicitly setting accessibility metadata on folder cells so selectable rows are announced with meaningful text.

Changes:

  • Build an accessibilityLabel from the folder name plus existing cell metadata text.
  • Apply the accessibility label/value to NCListCell instances in the share extension.
  • Mark folder rows as actionable by setting accessibilityTraits to .button.

馃挕 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +107 to +112
let accessibilityLabel = [metadata.fileNameView, cell.labelInfo.text, cell.labelSubinfo.text]
.compactMap { $0?.trimmingCharacters(in: .whitespacesAndNewlines) }
.filter { !$0.isEmpty }
.joined(separator: ", ")
cell.setAccessibility(label: accessibilityLabel, value: "")
cell.accessibilityTraits = .button
@mpivchev

Copy link
Copy Markdown
Collaborator

Hi @web3blind, thank you for the PR!
I will get back to you soon.

@mpivchev
mpivchev self-requested a review May 20, 2026 09:28

@mpivchev mpivchev left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@mpivchev
mpivchev merged commit 9c64a7e into nextcloud:master May 28, 2026
8 of 9 checks passed
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.

Accessibility: BLOCKING - Folder selection when sharing a file from another app not accessible with the VoiceOver screen reader

3 participants