@@ -247,7 +247,9 @@ UITkLetterCard accessibilityFocusedCard
247
247
set
248
248
{
249
249
if ( m_AccessibilityFocusedCard == value )
250
+ {
250
251
return ;
252
+ }
251
253
252
254
m_AccessibilityFocusedCard ? . Blur ( ) ;
253
255
@@ -262,12 +264,14 @@ UITkLetterCard accessibilityFocusedCard
262
264
// Note: we don't want to steal the focus if the user is dragging a card.
263
265
OnScreenDebug . Log ( "In Acc Focus " + ( m_AccessibilityFocusedCard != null ? m_AccessibilityFocusedCard . name : "null" ) +
264
266
" selected " + ( m_LetterCardContainer . selectedCard != null ? m_LetterCardContainer . selectedCard . name : "null" ) ) ;
267
+
265
268
if ( m_AccessibilityFocusedCard != null && m_LetterCardContainer . selectedCard == null )
269
+ {
266
270
m_AccessibilityFocusedCard . Focus ( ) ;
271
+ }
267
272
268
273
OnScreenDebug . Log ( "After Acc Focus " + ( m_AccessibilityFocusedCard != null ? m_AccessibilityFocusedCard . name : "null" ) +
269
274
" selected " + ( m_LetterCardContainer . selectedCard != null ? m_LetterCardContainer . selectedCard . name : "null" ) ) ;
270
-
271
275
}
272
276
}
273
277
@@ -623,6 +627,7 @@ void StateTheLetters()
623
627
public void OnWordReorderingCompleted ( )
624
628
{
625
629
m_LetterCardContainer . canPlayCards = false ;
630
+ m_LetterCardContainer . selectedCard . Unselect ( ) ;
626
631
627
632
m_MainView . schedule . Execute ( _ => AnnounceCorrectWord ( ) ) . ExecuteLater ( 2000 ) ;
628
633
@@ -650,18 +655,17 @@ void FadeSuccessImageOut()
650
655
651
656
void OnNodeFocusChanged ( AccessibilityNode node )
652
657
{
653
- if ( node ! = null )
658
+ if ( node = = null )
654
659
{
655
- var service = AccessibilityManager . GetService < UITkAccessibilityService > ( ) ;
656
- var element = service . GetVisualElementForNode ( m_MainView . panel , node ) ;
657
-
658
- accessibilityFocusedCard = element as UITkLetterCard ;
659
- MoveSelectedCardOnAssistedFocus ( ) ;
660
- }
661
- else
662
- {
663
- accessibilityFocusedCard = null ;
660
+ return ;
664
661
}
662
+
663
+ var service = AccessibilityManager . GetService < UITkAccessibilityService > ( ) ;
664
+ var element = service . GetVisualElementForNode ( m_MainView . panel , node ) ;
665
+
666
+ accessibilityFocusedCard = element as UITkLetterCard ;
667
+
668
+ MoveSelectedCardOnAssistedFocus ( ) ;
665
669
}
666
670
667
671
void MoveSelectedCardOnAssistedFocus ( )
@@ -716,28 +720,35 @@ void MoveCard(bool shouldMoveLeft, int count = 1)
716
720
717
721
// OnScreenDebug.Log("MoveCard " + (shouldMoveLeft ? "left" : "right" + " count " + count));
718
722
723
+ var updater = m_LetterCardContainer . selectedCard . panel . GetAccessibilityUpdater ( ) ;
724
+ var node = updater . GetNodeForVisualElement ( m_LetterCardContainer . selectedCard ) ;
725
+
726
+ var selectedCardText = m_LetterCardContainer . selectedCard . text ;
727
+
728
+ var index = m_LetterCardContainer . IndexOf ( m_LetterCardContainer . selectedCard ) ;
729
+ var otherCardIndex = shouldMoveLeft ? index - 1 : index + 1 ;
730
+ var otherCard = m_LetterCardContainer [ otherCardIndex ] as UITkLetterCard ;
731
+ var otherCardText = otherCard ? . text ;
732
+
719
733
var moved = shouldMoveLeft ?
720
734
m_LetterCardContainer . selectedCard . MoveLeft ( count ) :
721
735
m_LetterCardContainer . selectedCard . MoveRight ( count ) ;
722
736
737
+ m_MainView . schedule . Execute ( ( ) =>
738
+ AssistiveSupport . notificationDispatcher . SendLayoutChanged ( node )
739
+ ) . ExecuteLater ( 50 ) ;
740
+
723
741
if ( moved )
724
742
{
725
- var index = m_LetterCardContainer . IndexOf ( m_LetterCardContainer . selectedCard ) ;
726
- var otherCardIndex = shouldMoveLeft ? index + 1 : index - 1 ;
727
- var otherCard = m_LetterCardContainer [ otherCardIndex ] as UITkLetterCard ;
728
-
729
743
// TODO: This should be localized.
730
- var message = $ "Moved { m_LetterCardContainer . selectedCard . text } { ( shouldMoveLeft ? "before" : "after" ) } { otherCard ? . text } ";
744
+ var message = $ "Moved { selectedCardText } { ( shouldMoveLeft ? "before" : "after" ) } { otherCardText } ";
731
745
732
746
// Announce that the card was moved.
733
- AssistiveSupport . notificationDispatcher . SendAnnouncement ( message ) ;
747
+ m_MainView . schedule . Execute ( ( ) =>
748
+ AssistiveSupport . notificationDispatcher . SendAnnouncement ( message )
749
+ ) . ExecuteLater ( 100 ) ;
734
750
}
735
751
736
- var updater = m_LetterCardContainer . selectedCard . panel . GetAccessibilityUpdater ( ) ;
737
- var node = updater . GetNodeForVisualElement ( m_LetterCardContainer . selectedCard ) ;
738
-
739
- AssistiveSupport . notificationDispatcher . SendLayoutChanged ( node ) ;
740
-
741
752
/*var accElement = draggable.transform.GetComponent<AccessibleElement>();
742
753
743
754
if (shouldMoveLeft ? draggable.MoveLeft() : draggable.MoveRight())
0 commit comments