diff --git a/modules/juce_gui_basics/components/juce_Component.cpp b/modules/juce_gui_basics/components/juce_Component.cpp index d8dd00a7ed..cf34a48777 100644 --- a/modules/juce_gui_basics/components/juce_Component.cpp +++ b/modules/juce_gui_basics/components/juce_Component.cpp @@ -3163,6 +3163,11 @@ std::unique_ptr Component::createAccessibilityHandler() return std::make_unique (*this, AccessibilityRole::unspecified); } +std::unique_ptr Component::createIgnoredAccessibilityHandler (Component& comp) +{ + return std::make_unique (comp, AccessibilityRole::ignored); +} + void Component::invalidateAccessibilityHandler() { accessibilityHandler = nullptr; diff --git a/modules/juce_gui_basics/components/juce_Component.h b/modules/juce_gui_basics/components/juce_Component.h index 77dd8554d0..4726821a22 100644 --- a/modules/juce_gui_basics/components/juce_Component.h +++ b/modules/juce_gui_basics/components/juce_Component.h @@ -2597,6 +2597,8 @@ protected: //============================================================================== /** @internal */ virtual ComponentPeer* createNewPeer (int styleFlags, void* nativeWindowToAttachTo); + /** @internal */ + static std::unique_ptr createIgnoredAccessibilityHandler (Component&); #endif }; diff --git a/modules/juce_gui_basics/layout/juce_ComponentAnimator.cpp b/modules/juce_gui_basics/layout/juce_ComponentAnimator.cpp index 0a652577de..133a437ec9 100644 --- a/modules/juce_gui_basics/layout/juce_ComponentAnimator.cpp +++ b/modules/juce_gui_basics/layout/juce_ComponentAnimator.cpp @@ -150,7 +150,6 @@ public: { ProxyComponent (Component& c) { - setAccessible (false); setWantsKeyboardFocus (false); setBounds (c.getBounds()); setTransform (c.getTransform()); @@ -180,6 +179,11 @@ public: (float) getHeight() / (float) jmax (1, image.getHeight())), false); } + std::unique_ptr createAccessibilityHandler() override + { + return createIgnoredAccessibilityHandler (*this); + } + private: Image image; diff --git a/modules/juce_gui_basics/layout/juce_Viewport.cpp b/modules/juce_gui_basics/layout/juce_Viewport.cpp index b7ef9ed758..e37dd362f3 100644 --- a/modules/juce_gui_basics/layout/juce_Viewport.cpp +++ b/modules/juce_gui_basics/layout/juce_Viewport.cpp @@ -31,7 +31,6 @@ Viewport::Viewport (const String& name) : Component (name) // content holder is used to clip the contents so they don't overlap the scrollbars addAndMakeVisible (contentHolder); contentHolder.setInterceptsMouseClicks (false, true); - contentHolder.setAccessible (false); scrollBarThickness = getLookAndFeel().getDefaultScrollbarWidth(); diff --git a/modules/juce_gui_basics/widgets/juce_ListBox.cpp b/modules/juce_gui_basics/widgets/juce_ListBox.cpp index f9c529b69b..1e861d39bf 100644 --- a/modules/juce_gui_basics/widgets/juce_ListBox.cpp +++ b/modules/juce_gui_basics/widgets/juce_ListBox.cpp @@ -292,11 +292,9 @@ public: ListViewport (ListBox& lb) : owner (lb) { setWantsKeyboardFocus (false); - setAccessible (false); auto content = std::make_unique(); content->setWantsKeyboardFocus (false); - content->setAccessible (false); setViewedComponent (content.release()); } @@ -466,6 +464,11 @@ public: return Viewport::keyPressed (key); } + std::unique_ptr createAccessibilityHandler() override + { + return createIgnoredAccessibilityHandler (*this); + } + private: void timerCallback() override { diff --git a/modules/juce_gui_basics/widgets/juce_TreeView.cpp b/modules/juce_gui_basics/widgets/juce_TreeView.cpp index 41fd2a6596..994c26c18c 100644 --- a/modules/juce_gui_basics/widgets/juce_TreeView.cpp +++ b/modules/juce_gui_basics/widgets/juce_TreeView.cpp @@ -244,7 +244,6 @@ class TreeView::ContentComponent : public Component, public: ContentComponent (TreeView& tree) : owner (tree) { - setAccessible (false); } //============================================================================== @@ -268,6 +267,11 @@ public: void mouseMove (const MouseEvent& e) override { mouseMoveInternal (e.getEventRelativeTo (this)); } void mouseExit (const MouseEvent& e) override { mouseExitInternal (e.getEventRelativeTo (this)); } + std::unique_ptr createAccessibilityHandler() override + { + return createIgnoredAccessibilityHandler (*this); + } + //============================================================================== ItemComponent* getItemComponentAt (Point p) { @@ -670,6 +674,11 @@ public: return Viewport::keyPressed (key); } + std::unique_ptr createAccessibilityHandler() override + { + return createIgnoredAccessibilityHandler (*this); + } + private: void timerCallback() override { @@ -689,7 +698,6 @@ private: TreeView::TreeView (const String& name) : Component (name) { viewport = std::make_unique(); - viewport->setAccessible (false); addAndMakeVisible (viewport.get()); viewport->setViewedComponent (new ContentComponent (*this)); diff --git a/modules/juce_gui_basics/windows/juce_TooltipWindow.cpp b/modules/juce_gui_basics/windows/juce_TooltipWindow.cpp index 671de9a787..cb68fe42eb 100644 --- a/modules/juce_gui_basics/windows/juce_TooltipWindow.cpp +++ b/modules/juce_gui_basics/windows/juce_TooltipWindow.cpp @@ -158,6 +158,11 @@ float TooltipWindow::getDesktopScaleFactor() const return Component::getDesktopScaleFactor(); } +std::unique_ptr TooltipWindow::createAccessibilityHandler() +{ + return createIgnoredAccessibilityHandler (*this); +} + void TooltipWindow::timerCallback() { auto& desktop = Desktop::getInstance(); diff --git a/modules/juce_gui_basics/windows/juce_TooltipWindow.h b/modules/juce_gui_basics/windows/juce_TooltipWindow.h index 98dc32bc40..34eee05bbb 100644 --- a/modules/juce_gui_basics/windows/juce_TooltipWindow.h +++ b/modules/juce_gui_basics/windows/juce_TooltipWindow.h @@ -131,6 +131,8 @@ public: //============================================================================== /** @internal */ float getDesktopScaleFactor() const override; + /** @internal */ + std::unique_ptr createAccessibilityHandler() override; private: //==============================================================================