|
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