diff --git a/modules/juce_gui_basics/native/accessibility/juce_ios_Accessibility.mm b/modules/juce_gui_basics/native/accessibility/juce_ios_Accessibility.mm index 02748901e5..fab5b123ed 100644 --- a/modules/juce_gui_basics/native/accessibility/juce_ios_Accessibility.mm +++ b/modules/juce_gui_basics/native/accessibility/juce_ios_Accessibility.mm @@ -341,6 +341,19 @@ private: return traits | sendSuperclassMessage (self, @selector (accessibilityTraits)); } + static NSString* getAccessibilityValue (id self, SEL) + { + if (auto* handler = getHandler (self)) + { + if (handler->getCurrentState().isCheckable()) + return handler->getCurrentState().isChecked() ? @"1" : @"0"; + + return (NSString*) getAccessibilityValueFromInterfaces (*handler); + } + + return nil; + } + static void onFocusGain (id self, SEL) { if (auto* handler = getHandler (self)) diff --git a/modules/juce_gui_basics/native/accessibility/juce_mac_Accessibility.mm b/modules/juce_gui_basics/native/accessibility/juce_mac_Accessibility.mm index 174e264eda..1c80277d9b 100644 --- a/modules/juce_gui_basics/native/accessibility/juce_mac_Accessibility.mm +++ b/modules/juce_gui_basics/native/accessibility/juce_mac_Accessibility.mm @@ -283,6 +283,19 @@ private: return nil; } + static id getAccessibilityValue (id self, SEL) + { + if (auto* handler = getHandler (self)) + { + if (handler->getCurrentState().isCheckable()) + return handler->getCurrentState().isChecked() ? @(1) : @(0); + + return getAccessibilityValueFromInterfaces (*handler); + } + + return nil; + } + static NSArray* getAccessibilitySelectedChildren (id self, SEL) { return getSelectedChildren ([self accessibilityChildren]); diff --git a/modules/juce_gui_basics/native/accessibility/juce_mac_AccessibilitySharedCode.mm b/modules/juce_gui_basics/native/accessibility/juce_mac_AccessibilitySharedCode.mm index 1875a22829..ff08d2f962 100644 --- a/modules/juce_gui_basics/native/accessibility/juce_mac_AccessibilitySharedCode.mm +++ b/modules/juce_gui_basics/native/accessibility/juce_mac_AccessibilitySharedCode.mm @@ -78,6 +78,17 @@ protected: && ! handler.getTextInterface()->isReadOnly(); } + static id getAccessibilityValueFromInterfaces (const AccessibilityHandler& handler) + { + if (auto* textInterface = handler.getTextInterface()) + return juceStringToNS (textInterface->getText ({ 0, textInterface->getTotalNumCharacters() })); + + if (auto* valueInterface = handler.getValueInterface()) + return juceStringToNS (valueInterface->getCurrentValueAsString()); + + return nil; + } + //============================================================================== static BOOL getIsAccessibilityElement (id self, SEL) { @@ -88,30 +99,6 @@ protected: return NO; } - static id getAccessibilityValue (id self, SEL) - { - if (auto* handler = getHandler (self)) - { - if (auto* textInterface = handler->getTextInterface()) - return juceStringToNS (textInterface->getText ({ 0, textInterface->getTotalNumCharacters() })); - - if (handler->getCurrentState().isCheckable()) - { - return handler->getCurrentState().isChecked() - #if JUCE_IOS - ? @"1" : @"0"; - #else - ? @(1) : @(0); - #endif - } - - if (auto* valueInterface = handler->getValueInterface()) - return juceStringToNS (valueInterface->getCurrentValueAsString()); - } - - return nil; - } - static void setAccessibilityValue (id self, SEL, NSString* value) { if (auto* handler = getHandler (self))