|
30 | 30 | import android.view.KeyEvent; |
31 | 31 | import android.view.MotionEvent; |
32 | 32 | import android.view.View; |
| 33 | +import android.view.accessibility.AccessibilityEvent; |
33 | 34 | import android.view.accessibility.AccessibilityNodeInfo; |
34 | 35 | import android.view.inputmethod.EditorInfo; |
35 | 36 | import android.view.inputmethod.InputConnection; |
@@ -171,6 +172,14 @@ public void onInitializeAccessibilityNodeInfo( |
171 | 172 | } |
172 | 173 | } |
173 | 174 |
|
| 175 | + @Override |
| 176 | + public void onInitializeAccessibilityEvent(View host, AccessibilityEvent event) { |
| 177 | + super.onInitializeAccessibilityEvent(host, event); |
| 178 | + if (((View) host).getParent() != null) { |
| 179 | + ((View) host).getParent().requestSendAccessibilityEvent(host, event); |
| 180 | + } |
| 181 | + } |
| 182 | + |
174 | 183 | @Override |
175 | 184 | public boolean performAccessibilityAction(View host, int action, Bundle args) { |
176 | 185 | if (action == AccessibilityNodeInfo.ACTION_CLICK) { |
@@ -527,11 +536,12 @@ public int incrementAndGetEventCounter() { |
527 | 536 | */ |
528 | 537 | public void maybeSetAccessibilityError( |
529 | 538 | int eventCounter, @Nullable String accessibilityErrorMessage) { |
530 | | - if (!canUpdateWithEventCount(eventCounter) || accessibilityErrorMessage == null) { |
| 539 | + if (!canUpdateWithEventCount(eventCounter)) { |
531 | 540 | return; |
532 | 541 | } |
533 | | - announceForAccessibility("Invalid input " + accessibilityErrorMessage); |
534 | | - setTag(R.id.accessibility_error, null); |
| 542 | + |
| 543 | + setTag(R.id.accessibility_error, accessibilityErrorMessage); |
| 544 | + sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED); |
535 | 545 | } |
536 | 546 |
|
537 | 547 | public void maybeSetTextFromJS(ReactTextUpdate reactTextUpdate) { |
|
0 commit comments