From b6a35f9bfc4a22b9c2543ca439eccb5acfc4f28b Mon Sep 17 00:00:00 2001 From: Tatiana Elfimova Date: Tue, 10 Feb 2026 20:07:53 +0100 Subject: [PATCH 1/5] JBR-9994 Enable AccessibleAnnouncer for both X11 and Wayland Move AccessibleAnnouncer to shared libawt location and added speech-dispatcher configuration to libawt_wlawt build. --- .../java.desktop/lib/Awt2dLibraries.gmk | 38 ++++++++++++------- .../AccessibleAnnouncer/AccessibleAnnouncer.c | 0 .../AccessibleAnnouncerJNIUtils.h | 0 .../awt}/AccessibleAnnouncer/OrcaAnnouncer.c | 0 .../awt}/AccessibleAnnouncer/OrcaAnnouncer.h | 0 .../awt}/AccessibleAnnouncer/libspeechd_dyn.c | 0 6 files changed, 24 insertions(+), 14 deletions(-) rename src/java.desktop/{linux/native/libawt_xawt => unix/native/common/awt}/AccessibleAnnouncer/AccessibleAnnouncer.c (100%) rename src/java.desktop/{linux/native/libawt_xawt => unix/native/common/awt}/AccessibleAnnouncer/AccessibleAnnouncerJNIUtils.h (100%) rename src/java.desktop/{linux/native/libawt_xawt => unix/native/common/awt}/AccessibleAnnouncer/OrcaAnnouncer.c (100%) rename src/java.desktop/{linux/native/libawt_xawt => unix/native/common/awt}/AccessibleAnnouncer/OrcaAnnouncer.h (100%) rename src/java.desktop/{linux/native/libawt_xawt => unix/native/common/awt}/AccessibleAnnouncer/libspeechd_dyn.c (100%) diff --git a/make/modules/java.desktop/lib/Awt2dLibraries.gmk b/make/modules/java.desktop/lib/Awt2dLibraries.gmk index ae025cdc7e26..07021c7ab9cc 100644 --- a/make/modules/java.desktop/lib/Awt2dLibraries.gmk +++ b/make/modules/java.desktop/lib/Awt2dLibraries.gmk @@ -280,18 +280,6 @@ ifeq ($(call isTargetOs, windows macosx), false) common/font \ # - ifeq ($(A11Y_SPEECHD_ANNOUNCING_ENABLED), true) - A11Y_SPEECHD_ANNOUNCING_CFLAGS := - else - A11Y_SPEECHD_ANNOUNCING_CFLAGS := -DNO_A11Y_SPEECHD_ANNOUNCING - endif - - ifeq ($(call isTargetOs, linux), true) - LIBAWT_XAWT_EXTRA_SRC += \ - $(TOPDIR)/src/$(MODULE)/linux/native/libawt_xawt \ - # - endif - LIBAWT_XAWT_EXCLUDES := medialib debug wl $(VULKAN_EXCLUDES) LIBPIPEWIRE_HEADER_DIRS := \ @@ -303,6 +291,7 @@ ifeq ($(call isTargetOs, windows macosx), false) include \ common/awt/debug \ common/awt/systemscale \ + common/awt/AccessibleAnnouncer \ common/font \ common/java2d/opengl \ common/java2d/x11 @@ -315,10 +304,19 @@ ifeq ($(call isTargetOs, windows macosx), false) LIBAWT_XAWT_CFLAGS += -DXAWT -DXAWT_HACK \ $(FONTCONFIG_CFLAGS) \ $(CUPS_CFLAGS) \ - $(SPEECHD_CFLAGS) \ - $(A11Y_SPEECHD_ANNOUNCING_CFLAGS) \ # + # Setup speech-dispatcher a11y announcer for Linux xawt + ifeq ($(call isTargetOs, linux), true) + ifeq ($(A11Y_SPEECHD_ANNOUNCING_ENABLED), true) + A11Y_SPEECHD_ANNOUNCING_CFLAGS := $(SPEECHD_CFLAGS) + else + A11Y_SPEECHD_ANNOUNCING_CFLAGS := $(SPEECHD_CFLAGS) -DNO_A11Y_SPEECHD_ANNOUNCING + endif + + LIBAWT_XAWT_CFLAGS += $(A11Y_SPEECHD_ANNOUNCING_CFLAGS) + endif + ifeq ($(call isTargetOs, linux), true) ifeq ($(DISABLE_XRENDER), true) LIBAWT_XAWT_CFLAGS += -DDISABLE_XRENDER_BY_DEFAULT=true @@ -408,6 +406,7 @@ ifeq ($(call isTargetOs, windows macosx), false) include \ common/awt/debug \ common/awt/systemscale \ + common/awt/AccessibleAnnouncer \ common/font \ common/java2d \ common/java2d/wl \ @@ -425,6 +424,17 @@ ifeq ($(call isTargetOs, windows macosx), false) $(VULKAN_FLAGS) \ $(CUPS_CFLAGS) + # Setup speech-dispatcher a11y announcer for Linux wlawt + ifeq ($(call isTargetOs, linux), true) + ifeq ($(A11Y_SPEECHD_ANNOUNCING_ENABLED), true) + A11Y_SPEECHD_ANNOUNCING_CFLAGS_WLAWT := $(SPEECHD_CFLAGS) + else + A11Y_SPEECHD_ANNOUNCING_CFLAGS_WLAWT := $(SPEECHD_CFLAGS) -DNO_A11Y_SPEECHD_ANNOUNCING + endif + + LIBAWT_WLAWT_CFLAGS += $(A11Y_SPEECHD_ANNOUNCING_CFLAGS_WLAWT) + endif + LIBAWT_WLAWT_LIBS := $(LIBM) -lawt $(WAYLAND_LIBS) $(LIBDL) -ljava -ljvm -lrt ifeq ($(call isTargetOs, linux), true) diff --git a/src/java.desktop/linux/native/libawt_xawt/AccessibleAnnouncer/AccessibleAnnouncer.c b/src/java.desktop/unix/native/common/awt/AccessibleAnnouncer/AccessibleAnnouncer.c similarity index 100% rename from src/java.desktop/linux/native/libawt_xawt/AccessibleAnnouncer/AccessibleAnnouncer.c rename to src/java.desktop/unix/native/common/awt/AccessibleAnnouncer/AccessibleAnnouncer.c diff --git a/src/java.desktop/linux/native/libawt_xawt/AccessibleAnnouncer/AccessibleAnnouncerJNIUtils.h b/src/java.desktop/unix/native/common/awt/AccessibleAnnouncer/AccessibleAnnouncerJNIUtils.h similarity index 100% rename from src/java.desktop/linux/native/libawt_xawt/AccessibleAnnouncer/AccessibleAnnouncerJNIUtils.h rename to src/java.desktop/unix/native/common/awt/AccessibleAnnouncer/AccessibleAnnouncerJNIUtils.h diff --git a/src/java.desktop/linux/native/libawt_xawt/AccessibleAnnouncer/OrcaAnnouncer.c b/src/java.desktop/unix/native/common/awt/AccessibleAnnouncer/OrcaAnnouncer.c similarity index 100% rename from src/java.desktop/linux/native/libawt_xawt/AccessibleAnnouncer/OrcaAnnouncer.c rename to src/java.desktop/unix/native/common/awt/AccessibleAnnouncer/OrcaAnnouncer.c diff --git a/src/java.desktop/linux/native/libawt_xawt/AccessibleAnnouncer/OrcaAnnouncer.h b/src/java.desktop/unix/native/common/awt/AccessibleAnnouncer/OrcaAnnouncer.h similarity index 100% rename from src/java.desktop/linux/native/libawt_xawt/AccessibleAnnouncer/OrcaAnnouncer.h rename to src/java.desktop/unix/native/common/awt/AccessibleAnnouncer/OrcaAnnouncer.h diff --git a/src/java.desktop/linux/native/libawt_xawt/AccessibleAnnouncer/libspeechd_dyn.c b/src/java.desktop/unix/native/common/awt/AccessibleAnnouncer/libspeechd_dyn.c similarity index 100% rename from src/java.desktop/linux/native/libawt_xawt/AccessibleAnnouncer/libspeechd_dyn.c rename to src/java.desktop/unix/native/common/awt/AccessibleAnnouncer/libspeechd_dyn.c From 2e9c9459271660510819a5d1ab4602fb76702ede Mon Sep 17 00:00:00 2001 From: Tatiana Elfimova Date: Sat, 7 Mar 2026 11:05:45 +0100 Subject: [PATCH 2/5] JBR-9994 Consolidate A11Y_SPEECHD_ANNOUNCING_CFLAGS setup for Linux XAWT/WLAWT into shared configuration --- .../java.desktop/lib/Awt2dLibraries.gmk | 32 +++++++------------ 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/make/modules/java.desktop/lib/Awt2dLibraries.gmk b/make/modules/java.desktop/lib/Awt2dLibraries.gmk index 07021c7ab9cc..2687e6b242c1 100644 --- a/make/modules/java.desktop/lib/Awt2dLibraries.gmk +++ b/make/modules/java.desktop/lib/Awt2dLibraries.gmk @@ -165,6 +165,16 @@ ifeq ($(call isTargetOs, windows), true) LIBAWT_CFLAGS += $(A11Y_JAWS_ANNOUNCING_CFLAGS) endif +# Setup speech-dispatcher a11y announcer for Linux XAWT/WLAWT +A11Y_SPEECHD_ANNOUNCING_CFLAGS := +ifeq ($(call isTargetOs, linux), true) + ifeq ($(A11Y_SPEECHD_ANNOUNCING_ENABLED), true) + A11Y_SPEECHD_ANNOUNCING_CFLAGS := $(SPEECHD_CFLAGS) + else + A11Y_SPEECHD_ANNOUNCING_CFLAGS := $(SPEECHD_CFLAGS) -DNO_A11Y_SPEECHD_ANNOUNCING + endif +endif + # Setup Vulkan ifeq ($(VULKAN_ENABLED), true) LIBAWT_EXTRA_SRC += common/font common/java2d/vulkan @@ -306,16 +316,7 @@ ifeq ($(call isTargetOs, windows macosx), false) $(CUPS_CFLAGS) \ # - # Setup speech-dispatcher a11y announcer for Linux xawt - ifeq ($(call isTargetOs, linux), true) - ifeq ($(A11Y_SPEECHD_ANNOUNCING_ENABLED), true) - A11Y_SPEECHD_ANNOUNCING_CFLAGS := $(SPEECHD_CFLAGS) - else - A11Y_SPEECHD_ANNOUNCING_CFLAGS := $(SPEECHD_CFLAGS) -DNO_A11Y_SPEECHD_ANNOUNCING - endif - - LIBAWT_XAWT_CFLAGS += $(A11Y_SPEECHD_ANNOUNCING_CFLAGS) - endif + LIBAWT_XAWT_CFLAGS += $(A11Y_SPEECHD_ANNOUNCING_CFLAGS) ifeq ($(call isTargetOs, linux), true) ifeq ($(DISABLE_XRENDER), true) @@ -424,16 +425,7 @@ ifeq ($(call isTargetOs, windows macosx), false) $(VULKAN_FLAGS) \ $(CUPS_CFLAGS) - # Setup speech-dispatcher a11y announcer for Linux wlawt - ifeq ($(call isTargetOs, linux), true) - ifeq ($(A11Y_SPEECHD_ANNOUNCING_ENABLED), true) - A11Y_SPEECHD_ANNOUNCING_CFLAGS_WLAWT := $(SPEECHD_CFLAGS) - else - A11Y_SPEECHD_ANNOUNCING_CFLAGS_WLAWT := $(SPEECHD_CFLAGS) -DNO_A11Y_SPEECHD_ANNOUNCING - endif - - LIBAWT_WLAWT_CFLAGS += $(A11Y_SPEECHD_ANNOUNCING_CFLAGS_WLAWT) - endif + LIBAWT_WLAWT_CFLAGS += $(A11Y_SPEECHD_ANNOUNCING_CFLAGS) LIBAWT_WLAWT_LIBS := $(LIBM) -lawt $(WAYLAND_LIBS) $(LIBDL) -ljava -ljvm -lrt From 8e40f332814cb3a6d72450e7626c5fda47b663ab Mon Sep 17 00:00:00 2001 From: Tatiana Elfimova Date: Sat, 7 Mar 2026 11:08:24 +0100 Subject: [PATCH 3/5] JBR-9994 Use IBAWT_XAWT_EXTRA_SRC instead of LIBAWT_WLAWT_EXTRA_HEADER_DIRS --- make/modules/java.desktop/lib/Awt2dLibraries.gmk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/make/modules/java.desktop/lib/Awt2dLibraries.gmk b/make/modules/java.desktop/lib/Awt2dLibraries.gmk index 2687e6b242c1..0d80e0ac4652 100644 --- a/make/modules/java.desktop/lib/Awt2dLibraries.gmk +++ b/make/modules/java.desktop/lib/Awt2dLibraries.gmk @@ -288,6 +288,7 @@ ifeq ($(call isTargetOs, windows macosx), false) common/awt \ common/java2d \ common/font \ + common/awt/AccessibleAnnouncer \ # LIBAWT_XAWT_EXCLUDES := medialib debug wl $(VULKAN_EXCLUDES) @@ -301,7 +302,6 @@ ifeq ($(call isTargetOs, windows macosx), false) include \ common/awt/debug \ common/awt/systemscale \ - common/awt/AccessibleAnnouncer \ common/font \ common/java2d/opengl \ common/java2d/x11 @@ -395,6 +395,7 @@ ifeq ($(call isTargetOs, windows macosx), false) common/java2d \ common/font \ common/wayland \ + common/awt/AccessibleAnnouncer \ # LIBAWT_WLAWT_EXCLUDES := medialib debug opengl x11 $(VULKAN_EXCLUDES) @@ -407,7 +408,6 @@ ifeq ($(call isTargetOs, windows macosx), false) include \ common/awt/debug \ common/awt/systemscale \ - common/awt/AccessibleAnnouncer \ common/font \ common/java2d \ common/java2d/wl \ From 3b7416a0dac2ad99a727deacd305ff42255133d2 Mon Sep 17 00:00:00 2001 From: Tatiana Elfimova Date: Sat, 7 Mar 2026 11:18:36 +0100 Subject: [PATCH 4/5] JBR-9994 Append `-DNO_A11Y_SPEECHD_ANNOUNCING` unconditionally to avoid a situation when -DNO_A11Y_SPEECHD_ANNOUNCING doesn't accidentally get added --- make/modules/java.desktop/lib/Awt2dLibraries.gmk | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/make/modules/java.desktop/lib/Awt2dLibraries.gmk b/make/modules/java.desktop/lib/Awt2dLibraries.gmk index 0d80e0ac4652..31a7c8411e9c 100644 --- a/make/modules/java.desktop/lib/Awt2dLibraries.gmk +++ b/make/modules/java.desktop/lib/Awt2dLibraries.gmk @@ -166,12 +166,12 @@ ifeq ($(call isTargetOs, windows), true) endif # Setup speech-dispatcher a11y announcer for Linux XAWT/WLAWT -A11Y_SPEECHD_ANNOUNCING_CFLAGS := +A11Y_SPEECHD_ANNOUNCING_CFLAGS := -DNO_A11Y_SPEECHD_ANNOUNCING ifeq ($(call isTargetOs, linux), true) + A11Y_SPEECHD_ANNOUNCING_CFLAGS := $(SPEECHD_CFLAGS) -DNO_A11Y_SPEECHD_ANNOUNCING + ifeq ($(A11Y_SPEECHD_ANNOUNCING_ENABLED), true) A11Y_SPEECHD_ANNOUNCING_CFLAGS := $(SPEECHD_CFLAGS) - else - A11Y_SPEECHD_ANNOUNCING_CFLAGS := $(SPEECHD_CFLAGS) -DNO_A11Y_SPEECHD_ANNOUNCING endif endif From 0f8b5f3f63edf6ef7f83394cd484ed10846bfbdf Mon Sep 17 00:00:00 2001 From: Tatiana Elfimova Date: Wed, 25 Mar 2026 15:52:49 +0200 Subject: [PATCH 5/5] JBR-9995 Move AccessibleAnnouncer out of common/awt to common/accessibility Move AccessibleAnnouncer to another directory to restrict builds to XAWT and WLAWT --- make/modules/java.desktop/lib/Awt2dLibraries.gmk | 12 +++++------- .../AccessibleAnnouncer/AccessibleAnnouncer.c | 0 .../AccessibleAnnouncerJNIUtils.h | 0 .../AccessibleAnnouncer/OrcaAnnouncer.c | 0 .../AccessibleAnnouncer/OrcaAnnouncer.h | 0 .../AccessibleAnnouncer/libspeechd_dyn.c | 0 6 files changed, 5 insertions(+), 7 deletions(-) rename src/java.desktop/unix/native/common/{awt => accessibility}/AccessibleAnnouncer/AccessibleAnnouncer.c (100%) rename src/java.desktop/unix/native/common/{awt => accessibility}/AccessibleAnnouncer/AccessibleAnnouncerJNIUtils.h (100%) rename src/java.desktop/unix/native/common/{awt => accessibility}/AccessibleAnnouncer/OrcaAnnouncer.c (100%) rename src/java.desktop/unix/native/common/{awt => accessibility}/AccessibleAnnouncer/OrcaAnnouncer.h (100%) rename src/java.desktop/unix/native/common/{awt => accessibility}/AccessibleAnnouncer/libspeechd_dyn.c (100%) diff --git a/make/modules/java.desktop/lib/Awt2dLibraries.gmk b/make/modules/java.desktop/lib/Awt2dLibraries.gmk index 31a7c8411e9c..3eaca719e971 100644 --- a/make/modules/java.desktop/lib/Awt2dLibraries.gmk +++ b/make/modules/java.desktop/lib/Awt2dLibraries.gmk @@ -288,7 +288,7 @@ ifeq ($(call isTargetOs, windows macosx), false) common/awt \ common/java2d \ common/font \ - common/awt/AccessibleAnnouncer \ + common/accessibility/AccessibleAnnouncer \ # LIBAWT_XAWT_EXCLUDES := medialib debug wl $(VULKAN_EXCLUDES) @@ -314,10 +314,9 @@ ifeq ($(call isTargetOs, windows macosx), false) LIBAWT_XAWT_CFLAGS += -DXAWT -DXAWT_HACK \ $(FONTCONFIG_CFLAGS) \ $(CUPS_CFLAGS) \ + $(A11Y_SPEECHD_ANNOUNCING_CFLAGS) \ # - LIBAWT_XAWT_CFLAGS += $(A11Y_SPEECHD_ANNOUNCING_CFLAGS) - ifeq ($(call isTargetOs, linux), true) ifeq ($(DISABLE_XRENDER), true) LIBAWT_XAWT_CFLAGS += -DDISABLE_XRENDER_BY_DEFAULT=true @@ -395,7 +394,7 @@ ifeq ($(call isTargetOs, windows macosx), false) common/java2d \ common/font \ common/wayland \ - common/awt/AccessibleAnnouncer \ + common/accessibility/AccessibleAnnouncer \ # LIBAWT_WLAWT_EXCLUDES := medialib debug opengl x11 $(VULKAN_EXCLUDES) @@ -423,9 +422,8 @@ ifeq ($(call isTargetOs, windows macosx), false) $(WAKEFIELD_ROBOT_CFLAGS) \ $(FONTCONFIG_CFLAGS) \ $(VULKAN_FLAGS) \ - $(CUPS_CFLAGS) - - LIBAWT_WLAWT_CFLAGS += $(A11Y_SPEECHD_ANNOUNCING_CFLAGS) + $(CUPS_CFLAGS) \ + $(A11Y_SPEECHD_ANNOUNCING_CFLAGS) LIBAWT_WLAWT_LIBS := $(LIBM) -lawt $(WAYLAND_LIBS) $(LIBDL) -ljava -ljvm -lrt diff --git a/src/java.desktop/unix/native/common/awt/AccessibleAnnouncer/AccessibleAnnouncer.c b/src/java.desktop/unix/native/common/accessibility/AccessibleAnnouncer/AccessibleAnnouncer.c similarity index 100% rename from src/java.desktop/unix/native/common/awt/AccessibleAnnouncer/AccessibleAnnouncer.c rename to src/java.desktop/unix/native/common/accessibility/AccessibleAnnouncer/AccessibleAnnouncer.c diff --git a/src/java.desktop/unix/native/common/awt/AccessibleAnnouncer/AccessibleAnnouncerJNIUtils.h b/src/java.desktop/unix/native/common/accessibility/AccessibleAnnouncer/AccessibleAnnouncerJNIUtils.h similarity index 100% rename from src/java.desktop/unix/native/common/awt/AccessibleAnnouncer/AccessibleAnnouncerJNIUtils.h rename to src/java.desktop/unix/native/common/accessibility/AccessibleAnnouncer/AccessibleAnnouncerJNIUtils.h diff --git a/src/java.desktop/unix/native/common/awt/AccessibleAnnouncer/OrcaAnnouncer.c b/src/java.desktop/unix/native/common/accessibility/AccessibleAnnouncer/OrcaAnnouncer.c similarity index 100% rename from src/java.desktop/unix/native/common/awt/AccessibleAnnouncer/OrcaAnnouncer.c rename to src/java.desktop/unix/native/common/accessibility/AccessibleAnnouncer/OrcaAnnouncer.c diff --git a/src/java.desktop/unix/native/common/awt/AccessibleAnnouncer/OrcaAnnouncer.h b/src/java.desktop/unix/native/common/accessibility/AccessibleAnnouncer/OrcaAnnouncer.h similarity index 100% rename from src/java.desktop/unix/native/common/awt/AccessibleAnnouncer/OrcaAnnouncer.h rename to src/java.desktop/unix/native/common/accessibility/AccessibleAnnouncer/OrcaAnnouncer.h diff --git a/src/java.desktop/unix/native/common/awt/AccessibleAnnouncer/libspeechd_dyn.c b/src/java.desktop/unix/native/common/accessibility/AccessibleAnnouncer/libspeechd_dyn.c similarity index 100% rename from src/java.desktop/unix/native/common/awt/AccessibleAnnouncer/libspeechd_dyn.c rename to src/java.desktop/unix/native/common/accessibility/AccessibleAnnouncer/libspeechd_dyn.c