mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-01-13 17:23:13 +08:00
Fixed accesibility problem with <TextInput>'s Clear Button
Summary: UITextView is accessible by default (some nested views are) and disabling that is not supported. The problem happened because JS side sets `isAccessible` flag for UITextView and UITextField to `true` (with good intent!), which actually disables (surprise!) bult-in accessibility of TextInput on iOS. On iOS accessible elements cannot be nested, so enabling accessibily for some container view (even in a case where this is view is a public API of TextInput on iOS) shadows some features implemented inside the component. (Disabling accessibility of TextInput via `accessible=false` was never supported.) Reviewed By: JoshuaGross Differential Revision: D15280667 fbshipit-source-id: 72509b40383db6ef66c4263bd920f5ee56a42fc1
This commit is contained in:
committed by
Facebook Github Bot
parent
078f14c5d2
commit
4e37d37cbf
@@ -58,6 +58,15 @@ static UIColor *defaultPlaceholderColor()
|
||||
[[NSNotificationCenter defaultCenter] removeObserver:self];
|
||||
}
|
||||
|
||||
#pragma mark - Accessibility
|
||||
|
||||
- (void)setIsAccessibilityElement:(BOOL)isAccessibilityElement
|
||||
{
|
||||
// UITextView is accessible by default (some nested views are) and disabling that is not supported.
|
||||
// On iOS accessible elements cannot be nested, therefore enabling accessibility for some container view
|
||||
// (even in a case where this view is a part of public API of TextInput on iOS) shadows some features implemented inside the component.
|
||||
}
|
||||
|
||||
- (NSString *)accessibilityLabel
|
||||
{
|
||||
NSMutableString *accessibilityLabel = [NSMutableString new];
|
||||
|
||||
@@ -43,6 +43,15 @@
|
||||
_textWasPasted = NO;
|
||||
}
|
||||
|
||||
#pragma mark - Accessibility
|
||||
|
||||
- (void)setIsAccessibilityElement:(BOOL)isAccessibilityElement
|
||||
{
|
||||
// UITextField is accessible by default (some nested views are) and disabling that is not supported.
|
||||
// On iOS accessible elements cannot be nested, therefore enabling accessibility for some container view
|
||||
// (even in a case where this view is a part of public API of TextInput on iOS) shadows some features implemented inside the component.
|
||||
}
|
||||
|
||||
#pragma mark - Properties
|
||||
|
||||
- (void)setTextContainerInset:(UIEdgeInsets)textContainerInset
|
||||
|
||||
Reference in New Issue
Block a user