diff --git a/modules/controls/src/main/java/javafx/scene/control/TitledPane.java b/modules/controls/src/main/java/javafx/scene/control/TitledPane.java
--- a/modules/controls/src/main/java/javafx/scene/control/TitledPane.java
+++ b/modules/controls/src/main/java/javafx/scene/control/TitledPane.java
@@ -92,6 +92,11 @@
 
         // initialize pseudo-class state
         pseudoClassStateChanged(PSEUDO_CLASS_EXPANDED, true);
+        
+        collapsibleProperty().addListener((o, oV, nV) -> {
+            if (!focusTraversableProperty().isBound())
+                focusTraversableProperty().set(nV);
+        });
     }
 
     /**
diff --git a/modules/controls/src/test/java/javafx/scene/control/TitledPaneTest.java b/modules/controls/src/test/java/javafx/scene/control/TitledPaneTest.java
--- a/modules/controls/src/test/java/javafx/scene/control/TitledPaneTest.java
+++ b/modules/controls/src/test/java/javafx/scene/control/TitledPaneTest.java
@@ -45,6 +45,7 @@
 import javafx.scene.input.KeyCode;
 import javafx.scene.input.MouseEvent;
 import javafx.scene.layout.StackPane;
+import javafx.scene.layout.VBox;
 import javafx.scene.shape.Rectangle;
 import javafx.stage.Stage;
 
@@ -53,6 +54,7 @@
 
 import com.sun.javafx.pgstub.StubToolkit;
 import com.sun.javafx.scene.control.infrastructure.KeyEventFirer;
+import com.sun.javafx.scene.control.infrastructure.KeyModifier;
 import com.sun.javafx.scene.control.infrastructure.MouseEventGenerator;
 import com.sun.javafx.scene.control.skin.TitledPaneSkin;
 import com.sun.javafx.tk.Toolkit;
@@ -293,7 +295,49 @@
         assertEquals(Pos.BOTTOM_RIGHT, titledPane.getAlignment());              
     }
     
-    @Test public void keyboardFocusOnNonCollapsibleTitledPane_RT19660() {
+    @Test
+    public void keyboardFocusOnNonCollapsibleTitledPane_RT40570() {
+        VBox box = new VBox();
+        root.getChildren().add(box);
+
+        Button button1 = new Button("Button1");
+        box.getChildren().add(button1);
+
+        titledPane.setCollapsible(false);
+        titledPane.setExpanded(true);
+        titledPane.setAnimated(false);
+        Button contentbutton = new Button("Content Button");
+        titledPane.setContent(contentbutton);
+        box.getChildren().add(titledPane);
+
+        Button button2 = new Button("Button2");
+        box.getChildren().add(button2);
+
+        show();
+
+        tk.firePulse();
+        assertTrue(titledPane.isExpanded());
+        assertTrue(button1.isFocused());
+
+        new KeyEventFirer(button1).doKeyPress(KeyCode.TAB);
+        tk.firePulse();
+        assertFalse(titledPane.isFocused());
+        assertTrue(contentbutton.isFocused());
+
+        new KeyEventFirer(contentbutton).doKeyPress(KeyCode.TAB);
+        tk.firePulse();
+        assertTrue(button2.isFocused());
+
+        new KeyEventFirer(button2).doKeyPress(KeyCode.TAB, KeyModifier.SHIFT);
+        tk.firePulse();
+        assertTrue(contentbutton.isFocused());
+
+        new KeyEventFirer(contentbutton).doKeyPress(KeyCode.TAB, KeyModifier.SHIFT);
+        tk.firePulse();
+        assertTrue(button1.isFocused());
+    }    
+    
+    @Test public void mouseFocusOnNonCollapsibleTitledPane_RT40570() {
         Button button = new Button("Button");
         
         titledPane.setCollapsible(false);
@@ -305,34 +349,7 @@
         show();
 
         tk.firePulse();        
-        assertTrue(titledPane.isFocused());
-
-        KeyEventFirer keyboard = new KeyEventFirer(titledPane);        
-        keyboard.doKeyPress(KeyCode.ENTER);
-        
-        tk.firePulse();
-        assertTrue(titledPane.isExpanded());
-        assertTrue(titledPane.isFocused());
-
-        keyboard.doKeyPress(KeyCode.TAB);
-        tk.firePulse();
         assertFalse(titledPane.isFocused());
-        assertTrue(button.isFocused());
-    }    
-    
-    @Test public void mouseFocusOnNonCollapsibleTitledPane_RT19660() {
-        Button button = new Button("Button");
-        
-        titledPane.setCollapsible(false);
-        titledPane.setExpanded(true);
-        titledPane.setAnimated(false);
-        titledPane.setContent(button);
-        
-        root.getChildren().add(titledPane);
-        show();
-
-        tk.firePulse();        
-        assertTrue(titledPane.isFocused());
 
         double xval = (titledPane.localToScene(titledPane.getLayoutBounds())).getMinX();
         double yval = (titledPane.localToScene(titledPane.getLayoutBounds())).getMinY();
