@@ -132,6 +132,41 @@ public void itUnfocusesPlatformViewWhenPlatformViewGoesAway() {
132132 assertEquals (event .getEventType (), AccessibilityEvent .TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED );
133133 }
134134
135+ @ Test
136+ public void itAnnouncesWhiteSpaceWhenNoNamesRoute () {
137+ AccessibilityViewEmbedder mockViewEmbedder = mock (AccessibilityViewEmbedder .class );
138+ AccessibilityManager mockManager = mock (AccessibilityManager .class );
139+ View mockRootView = mock (View .class );
140+ Context context = mock (Context .class );
141+ when (mockRootView .getContext ()).thenReturn (context );
142+ when (context .getPackageName ()).thenReturn ("test" );
143+ AccessibilityBridge accessibilityBridge =
144+ setUpBridge (mockRootView , mockManager , mockViewEmbedder );
145+ ViewParent mockParent = mock (ViewParent .class );
146+ when (mockRootView .getParent ()).thenReturn (mockParent );
147+ when (mockManager .isEnabled ()).thenReturn (true );
148+
149+ // Sent a11y tree with scopeRoute without namesRoute.
150+ TestSemanticsNode root = new TestSemanticsNode ();
151+ root .id = 0 ;
152+ TestSemanticsNode scopeRoute = new TestSemanticsNode ();
153+ scopeRoute .id = 1 ;
154+ scopeRoute .addFlag (AccessibilityBridge .Flag .SCOPES_ROUTE );
155+ root .children .add (scopeRoute );
156+ TestSemanticsUpdate testSemanticsUpdate = root .toUpdate ();
157+ accessibilityBridge .updateSemantics (testSemanticsUpdate .buffer , testSemanticsUpdate .strings );
158+
159+ ArgumentCaptor <AccessibilityEvent > eventCaptor =
160+ ArgumentCaptor .forClass (AccessibilityEvent .class );
161+ verify (mockParent , times (2 ))
162+ .requestSendAccessibilityEvent (eq (mockRootView ), eventCaptor .capture ());
163+ AccessibilityEvent event = eventCaptor .getAllValues ().get (0 );
164+ assertEquals (event .getEventType (), AccessibilityEvent .TYPE_WINDOW_STATE_CHANGED );
165+ List <CharSequence > sentences = event .getText ();
166+ assertEquals (sentences .size (), 1 );
167+ assertEquals (sentences .get (0 ).toString (), " " );
168+ }
169+
135170 @ Test
136171 public void itHoverOverOutOfBoundsDoesNotCrash () {
137172 // SementicsNode.hitTest() returns null when out of bounds.
0 commit comments