mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
- remove accessibilityComponentType and accessibilityTraits props (a11y) (#24344)
Summary: Closes: https://github.com/facebook/react-native/issues/24016 React Native 0.57 introduced cross-platform `accessibilityRole` and `accessibilityStates` props in order to replace `accessibilityComponentType` (for android) and `accessibilityTraits` (for iOS). With #24095 `accessibilityRole` and `accessibilityStates` will increase, receiving more options, which seems to be a good moment to remove deprecated props. Remove deprecated `accessibilityComponentType` and `accessibilityTraits` props. [General] [Removed] - Remove accessibilityComponentType and accessibilityTraits props Pull Request resolved: https://github.com/facebook/react-native/pull/24344 Reviewed By: rickhanlonii Differential Revision: D14842214 Pulled By: cpojer fbshipit-source-id: 279945e503d8a23bfee7a49d42f5db490c5f6069
This commit is contained in:
committed by
Facebook Github Bot
parent
57c1a7add2
commit
f70e58f355
@@ -1,101 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
package com.facebook.react.uimanager;
|
||||
|
||||
import android.view.View;
|
||||
import android.view.accessibility.AccessibilityEvent;
|
||||
import android.view.accessibility.AccessibilityNodeInfo;
|
||||
import android.widget.Button;
|
||||
import android.widget.RadioButton;
|
||||
|
||||
/**
|
||||
* Helper class containing logic for setting accessibility View properties.
|
||||
*/
|
||||
/* package */ class AccessibilityHelper {
|
||||
|
||||
private static final String BUTTON = "button";
|
||||
private static final String RADIOBUTTON_CHECKED = "radiobutton_checked";
|
||||
private static final String RADIOBUTTON_UNCHECKED = "radiobutton_unchecked";
|
||||
|
||||
private static final View.AccessibilityDelegate BUTTON_DELEGATE =
|
||||
new View.AccessibilityDelegate() {
|
||||
@Override
|
||||
public void onInitializeAccessibilityEvent(View host, AccessibilityEvent event) {
|
||||
super.onInitializeAccessibilityEvent(host, event);
|
||||
event.setClassName(Button.class.getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
|
||||
super.onInitializeAccessibilityNodeInfo(host, info);
|
||||
info.setClassName(Button.class.getName());
|
||||
}
|
||||
};
|
||||
|
||||
private static final View.AccessibilityDelegate RADIOBUTTON_CHECKED_DELEGATE =
|
||||
new View.AccessibilityDelegate() {
|
||||
@Override
|
||||
public void onInitializeAccessibilityEvent(View host, AccessibilityEvent event) {
|
||||
super.onInitializeAccessibilityEvent(host, event);
|
||||
event.setClassName(RadioButton.class.getName());
|
||||
event.setChecked(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
|
||||
super.onInitializeAccessibilityNodeInfo(host, info);
|
||||
info.setClassName(RadioButton.class.getName());
|
||||
info.setCheckable(true);
|
||||
info.setChecked(true);
|
||||
}
|
||||
};
|
||||
|
||||
private static final View.AccessibilityDelegate RADIOBUTTON_UNCHECKED_DELEGATE =
|
||||
new View.AccessibilityDelegate() {
|
||||
@Override
|
||||
public void onInitializeAccessibilityEvent(View host, AccessibilityEvent event) {
|
||||
super.onInitializeAccessibilityEvent(host, event);
|
||||
event.setClassName(RadioButton.class.getName());
|
||||
event.setChecked(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
|
||||
super.onInitializeAccessibilityNodeInfo(host, info);
|
||||
info.setClassName(RadioButton.class.getName());
|
||||
info.setCheckable(true);
|
||||
info.setChecked(false);
|
||||
}
|
||||
};
|
||||
|
||||
public static void updateAccessibilityComponentType(View view, String componentType) {
|
||||
if (componentType == null) {
|
||||
view.setAccessibilityDelegate(null);
|
||||
return;
|
||||
}
|
||||
switch (componentType) {
|
||||
case BUTTON:
|
||||
view.setAccessibilityDelegate(BUTTON_DELEGATE);
|
||||
break;
|
||||
case RADIOBUTTON_CHECKED:
|
||||
view.setAccessibilityDelegate(RADIOBUTTON_CHECKED_DELEGATE);
|
||||
break;
|
||||
case RADIOBUTTON_UNCHECKED:
|
||||
view.setAccessibilityDelegate(RADIOBUTTON_UNCHECKED_DELEGATE);
|
||||
break;
|
||||
default:
|
||||
view.setAccessibilityDelegate(null);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public static void sendAccessibilityEvent(View view, int eventType) {
|
||||
view.sendAccessibilityEvent(eventType);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -32,7 +32,6 @@ public abstract class BaseViewManager<T extends View, C extends LayoutShadowNode
|
||||
private static final String PROP_Z_INDEX = "zIndex";
|
||||
private static final String PROP_RENDER_TO_HARDWARE_TEXTURE = "renderToHardwareTextureAndroid";
|
||||
private static final String PROP_ACCESSIBILITY_LABEL = "accessibilityLabel";
|
||||
private static final String PROP_ACCESSIBILITY_COMPONENT_TYPE = "accessibilityComponentType";
|
||||
private static final String PROP_ACCESSIBILITY_HINT = "accessibilityHint";
|
||||
private static final String PROP_ACCESSIBILITY_LIVE_REGION = "accessibilityLiveRegion";
|
||||
private static final String PROP_ACCESSIBILITY_ROLE = "accessibilityRole";
|
||||
@@ -117,11 +116,6 @@ public abstract class BaseViewManager<T extends View, C extends LayoutShadowNode
|
||||
view.setContentDescription(accessibilityLabel);
|
||||
}
|
||||
|
||||
@ReactProp(name = PROP_ACCESSIBILITY_COMPONENT_TYPE)
|
||||
public void setAccessibilityComponentType(@Nonnull T view, String accessibilityComponentType) {
|
||||
AccessibilityHelper.updateAccessibilityComponentType(view, accessibilityComponentType);
|
||||
}
|
||||
|
||||
@ReactProp(name = PROP_ACCESSIBILITY_HINT)
|
||||
public void setAccessibilityHint(@Nonnull T view, String accessibilityHint) {
|
||||
view.setTag(R.id.accessibility_hint, accessibilityHint);
|
||||
|
||||
+1
-1
@@ -842,6 +842,6 @@ public class NativeViewHierarchyManager {
|
||||
if (view == null) {
|
||||
throw new JSApplicationIllegalArgumentException("Could not find view with tag " + tag);
|
||||
}
|
||||
AccessibilityHelper.sendAccessibilityEvent(view, eventType);
|
||||
view.sendAccessibilityEvent(eventType);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user