diff --git a/Mastodon/Scene/Notification/Notification Filtering/NotificationPolicyHostingViewController.swift b/Mastodon/Scene/Notification/Notification Filtering/NotificationPolicyHostingViewController.swift index 6964df572..9f90e8f69 100644 --- a/Mastodon/Scene/Notification/Notification Filtering/NotificationPolicyHostingViewController.swift +++ b/Mastodon/Scene/Notification/Notification Filtering/NotificationPolicyHostingViewController.swift @@ -170,7 +170,7 @@ struct NotificationPolicyView: View { } .background(Color(uiColor: .systemGroupedBackground)) - // Close button + // Dismiss button Button { viewModel.dismissView?() } label: { @@ -209,6 +209,7 @@ struct NotificationPolicyView: View { .multilineTextAlignment(.leading) .font(.subheadline) } + .accessibilityElement(children: .combine) Spacer() @@ -300,12 +301,11 @@ extension NotificationPolicyView { .padding(7) .fixedSize(horizontal: false, vertical: true) .onTapGesture { - withAnimation { - if viewModel.value(forItem: filterItem) != option { - viewModel.setValue(option, forItem: filterItem) - } - viewModel.isShowingMenu = nil - } + updateSelectedOption(option, for: filterItem) + } + .accessibilityElement(children: .combine) + .accessibilityAction { + updateSelectedOption(option, for: filterItem) } if option != .drop { @@ -324,6 +324,13 @@ extension NotificationPolicyView { .shadow(radius: 5) } } + + fileprivate func updateSelectedOption(_ option: FilterAction, for filterItem: NotificationPolicyViewModel.NotificationFilterItem) { + if viewModel.value(forItem: filterItem) != option { + viewModel.setValue(option, forItem: filterItem) + } + viewModel.isShowingMenu = nil + } } @MainActor