From 66f8af98e7e3c5db91687ce9f2ba6b76de4d230e Mon Sep 17 00:00:00 2001 From: ed Date: Fri, 29 Oct 2021 10:21:59 +0100 Subject: [PATCH] Windows Accessibility: Don't set UIA_NamePropertyId of ignored elements to prevent it from being read out by Narrator --- .../accessibility/juce_win32_AccessibilityElement.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/modules/juce_gui_basics/native/accessibility/juce_win32_AccessibilityElement.cpp b/modules/juce_gui_basics/native/accessibility/juce_win32_AccessibilityElement.cpp index 8c867b5158..75c1c45ebc 100644 --- a/modules/juce_gui_basics/native/accessibility/juce_win32_AccessibilityElement.cpp +++ b/modules/juce_gui_basics/native/accessibility/juce_win32_AccessibilityElement.cpp @@ -266,8 +266,9 @@ JUCE_COMRESULT AccessibilityNativeHandle::GetPropertyValue (PROPERTYID propertyI const auto fragmentRoot = isFragmentRoot(); - const auto role = accessibilityHandler.getRole(); - const auto state = accessibilityHandler.getCurrentState(); + const auto role = accessibilityHandler.getRole(); + const auto state = accessibilityHandler.getCurrentState(); + const auto ignored = accessibilityHandler.isIgnored(); switch (propertyId) { @@ -287,7 +288,7 @@ JUCE_COMRESULT AccessibilityNativeHandle::GetPropertyValue (PROPERTYID propertyI VariantHelpers::setString (accessibilityHandler.getHelp(), pRetVal); break; case UIA_IsContentElementPropertyId: - VariantHelpers::setBool (! accessibilityHandler.isIgnored() && accessibilityHandler.isVisibleWithinParent(), + VariantHelpers::setBool (! ignored && accessibilityHandler.isVisibleWithinParent(), pRetVal); break; case UIA_IsControlElementPropertyId: @@ -320,7 +321,9 @@ JUCE_COMRESULT AccessibilityNativeHandle::GetPropertyValue (PROPERTYID propertyI pRetVal); break; case UIA_NamePropertyId: - VariantHelpers::setString (getElementName(), pRetVal); + if (! ignored) + VariantHelpers::setString (getElementName(), pRetVal); + break; case UIA_ProcessIdPropertyId: VariantHelpers::setInt ((int) GetCurrentProcessId(), pRetVal);