From f1d283a84eb0056938a5563ef8f0fc195bed2b53 Mon Sep 17 00:00:00 2001 From: 1grzyb1 Date: Thu, 5 Feb 2026 12:01:18 +0100 Subject: [PATCH] VIM-3948 Make FilterComponent Accessible GitOrigin-RevId: a61a5093f0d9f39efea806d087259c6718810996 --- .../messages/VcsLogBundle.properties | 2 + .../com/intellij/util/ui/FilterComponent.java | 37 ++++++++++++++++++- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/platform/vcs-log/impl/resources/messages/VcsLogBundle.properties b/platform/vcs-log/impl/resources/messages/VcsLogBundle.properties index b8e977325a77..410bafc7d23e 100644 --- a/platform/vcs-log/impl/resources/messages/VcsLogBundle.properties +++ b/platform/vcs-log/impl/resources/messages/VcsLogBundle.properties @@ -331,6 +331,8 @@ vcs.log.table.accessible.name={0} log vcs.log.changes.accessible.name=Commit changes browser vcs.log.text.filter.accessible.name={0} log text or hash filter vcs.log.filter.accessible.name={0}: {1} +vcs.log.filter.accessible.action.show.popup=Show Popup +vcs.log.filter.accessible.action.clear=Clear # exceptions vcs.log.failed.loading.details=Cannot load details for commit {0} in {1} diff --git a/platform/vcs-log/impl/src/com/intellij/util/ui/FilterComponent.java b/platform/vcs-log/impl/src/com/intellij/util/ui/FilterComponent.java index 539b3861074b..3d8c3fdda234 100644 --- a/platform/vcs-log/impl/src/com/intellij/util/ui/FilterComponent.java +++ b/platform/vcs-log/impl/src/com/intellij/util/ui/FilterComponent.java @@ -16,6 +16,7 @@ import org.jetbrains.annotations.Nls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import javax.accessibility.AccessibleAction; import javax.accessibility.AccessibleContext; import javax.accessibility.AccessibleRole; import javax.swing.BorderFactory; @@ -360,7 +361,7 @@ public abstract class FilterComponent extends JBPanel { return accessibleContext; } - private class AccessibleVcsLogPopupComponent extends AccessibleContextDelegate { + private class AccessibleVcsLogPopupComponent extends AccessibleContextDelegate implements AccessibleAction { AccessibleVcsLogPopupComponent(AccessibleContext context) { super(context); @@ -380,5 +381,39 @@ public abstract class FilterComponent extends JBPanel { public AccessibleRole getAccessibleRole() { return AccessibleRole.POPUP_MENU; } + + @Override + public AccessibleAction getAccessibleAction() { + return this; + } + + @Override + public int getAccessibleActionCount() { + return 2; + } + + @Override + public String getAccessibleActionDescription(int i) { + return switch (i) { + case 0 -> VcsLogBundle.message("vcs.log.filter.accessible.action.show.popup"); + case 1 -> VcsLogBundle.message("vcs.log.filter.accessible.action.clear"); + default -> null; + }; + } + + @Override + public boolean doAccessibleAction(int i) { + return switch (i) { + case 0 -> { + showPopup(); + yield true; + } + case 1 -> { + resetFilter(); + yield true; + } + default -> false; + }; + } } }