summaryrefslogtreecommitdiff
path: root/Sora/Views/FavoritesView.swift
diff options
context:
space:
mode:
authorFuwn <[email protected]>2026-02-23 11:18:18 -0800
committerFuwn <[email protected]>2026-02-23 13:33:42 -0800
commit6a1fd75d265c7e85c538cca07cbaea7e7da8fec7 (patch)
treeebee4775b0a133b558429efc8edba11b445028eb /Sora/Views/FavoritesView.swift
parentfix: guard post detail url actions against invalid urls (diff)
downloadsora-testing-6a1fd75d265c7e85c538cca07cbaea7e7da8fec7.tar.xz
sora-testing-6a1fd75d265c7e85c538cca07cbaea7e7da8fec7.zip
feat: add explicit accessibility metadata for grid cells
Diffstat (limited to 'Sora/Views/FavoritesView.swift')
-rw-r--r--Sora/Views/FavoritesView.swift23
1 files changed, 23 insertions, 0 deletions
diff --git a/Sora/Views/FavoritesView.swift b/Sora/Views/FavoritesView.swift
index a0357da..1217441 100644
--- a/Sora/Views/FavoritesView.swift
+++ b/Sora/Views/FavoritesView.swift
@@ -642,6 +642,29 @@ struct FavoritesView: View { // swiftlint:disable:this type_body_length
Label("Delete", systemImage: "trash")
}
}
+ .accessibilityElement(children: .ignore)
+ .accessibilityLabel(Text(favoriteAccessibilityLabel(for: favorite)))
+ .accessibilityValue(Text(favoriteAccessibilityValue(for: favorite)))
+ .accessibilityHint(Text("Opens post details."))
+ }
+
+ private func favoriteAccessibilityLabel(for favorite: SettingsFavoritePost) -> String {
+ let tagSummary = favorite.tags
+ .prefix(3)
+ .map { tag in
+ tag.replacingOccurrences(of: "_", with: " ")
+ }
+ .joined(separator: ", ")
+
+ if tagSummary.isEmpty {
+ return "Favorite post \(favorite.postId)"
+ }
+
+ return tagSummary
+ }
+
+ private func favoriteAccessibilityValue(for favorite: SettingsFavoritePost) -> String {
+ "Rating \(favorite.rating.rawValue.uppercased()). Provider \(favorite.provider.rawValue)."
}
}