diff --git a/ParseUI/Classes/LogInViewController/PFLogInView.h b/ParseUI/Classes/LogInViewController/PFLogInView.h index 624fa7d..a2bce3d 100644 --- a/ParseUI/Classes/LogInViewController/PFLogInView.h +++ b/ParseUI/Classes/LogInViewController/PFLogInView.h @@ -57,6 +57,20 @@ typedef NS_OPTIONS(NSInteger, PFLogInFields) { PFLogInFieldsDismissButton) }; +/** + `PFLoginFields`'s accessibility label identifiers + + @see PFLogInView + */ +extern NSString *const PFLogInViewUsernameFieldAccessibilityIdentifier; +extern NSString *const PFLogInViewPasswordFieldAccessibilityIdentifier; +extern NSString *const PFLogInViewLogInButtonAccessibilityIdentifier; +extern NSString *const PFLogInViewSignUpButtonAccessibilityIdentifier; +extern NSString *const PFLogInViewPasswordForgottenButtonAccessibilityIdentifier; +extern NSString *const PFLogInViewTwitterButtonAccessibilityIdentifier; +extern NSString *const PFLogInViewFacebookButtonAccessibilityIdentifier; +extern NSString *const PFLogInViewDismissButtonAccessibilityIdentifier; + @class PFTextField; /** diff --git a/ParseUI/Classes/LogInViewController/PFLogInView.m b/ParseUI/Classes/LogInViewController/PFLogInView.m index 4298a44..4dfbc5c 100644 --- a/ParseUI/Classes/LogInViewController/PFLogInView.m +++ b/ParseUI/Classes/LogInViewController/PFLogInView.m @@ -35,6 +35,19 @@ static NSString *const PFLogInViewDefaultFacebookButtonImageName = @"facebook_icon.png"; static NSString *const PFLogInViewDefaultTwitterButtonImageName = @"twitter_icon.png"; +///-------------------------------------- +#pragma mark - Accessibility Identifiers +///-------------------------------------- + +NSString *const PFLogInViewUsernameFieldAccessibilityIdentifier = @"PFLogInViewUsernameFieldAccessibilityIdentifier"; +NSString *const PFLogInViewPasswordFieldAccessibilityIdentifier = @"PFLogInViewPasswordFieldAccessibilityIdentifier"; +NSString *const PFLogInViewLogInButtonAccessibilityIdentifier = @"PFLogInViewLogInButtonAccessibilityIdentifier"; +NSString *const PFLogInViewSignUpButtonAccessibilityIdentifier = @"PFLogInViewSignUpButtonAccessibilityIdentifier"; +NSString *const PFLogInViewPasswordForgottenButtonAccessibilityIdentifier = @"PFLogInViewPasswordForgottenButtonAccessibilityIdentifier"; +NSString *const PFLogInViewTwitterButtonAccessibilityIdentifier = @"PFLogInViewTwitterButtonAccessibilityIdentifier"; +NSString *const PFLogInViewFacebookButtonAccessibilityIdentifier = @"PFLogInViewFacebookButtonAccessibilityIdentifier"; +NSString *const PFLogInViewDismissButtonAccessibilityIdentifier = @"PFLogInViewDismissButtonAccessibilityIdentifier"; + @implementation PFLogInView ///-------------------------------------- @@ -109,6 +122,7 @@ - (void)_updateAllFields { if (_fields & PFLogInFieldsDismissButton) { if (!_dismissButton) { _dismissButton = [[PFDismissButton alloc] initWithFrame:CGRectZero]; + _dismissButton.accessibilityIdentifier = PFLogInViewDismissButtonAccessibilityIdentifier; [self addSubview:_dismissButton]; } } else { @@ -121,6 +135,7 @@ - (void)_updateAllFields { _usernameField = [[PFTextField alloc] initWithFrame:CGRectZero separatorStyle:(PFTextFieldSeparatorStyleTop | PFTextFieldSeparatorStyleBottom)]; + _usernameField.accessibilityIdentifier = PFLogInViewUsernameFieldAccessibilityIdentifier; _usernameField.autocorrectionType = UITextAutocorrectionTypeNo; _usernameField.autocapitalizationType = UITextAutocapitalizationTypeNone; _usernameField.returnKeyType = UIReturnKeyNext; @@ -131,6 +146,7 @@ - (void)_updateAllFields { if (!_passwordField) { _passwordField = [[PFTextField alloc] initWithFrame:CGRectZero separatorStyle:PFTextFieldSeparatorStyleBottom]; + _passwordField.accessibilityIdentifier = PFLogInViewPasswordFieldAccessibilityIdentifier; _passwordField.placeholder = PFLocalizedString(@"Password", @"Password"); _passwordField.secureTextEntry = YES; _passwordField.autocorrectionType = UITextAutocorrectionTypeNo; @@ -150,6 +166,7 @@ - (void)_updateAllFields { if (!_signUpButton) { _signUpButton = [[PFActionButton alloc] initWithConfiguration:[[self class] _defaultSignUpButtonConfiguration] buttonStyle:PFActionButtonStyleNormal]; + _signUpButton.accessibilityIdentifier = PFLogInViewSignUpButtonAccessibilityIdentifier; [self addSubview:_signUpButton]; } } else { @@ -160,6 +177,7 @@ - (void)_updateAllFields { if (_fields & PFLogInFieldsPasswordForgotten) { if (!_passwordForgottenButton) { _passwordForgottenButton = [[PFTextButton alloc] initWithFrame:CGRectZero]; + _passwordForgottenButton.accessibilityIdentifier = PFLogInViewPasswordForgottenButtonAccessibilityIdentifier; [_passwordForgottenButton setTitle:PFLocalizedString(@"Forgot Password?", "Forgot Password?") forState:UIControlStateNormal]; [self addSubview:_passwordForgottenButton]; @@ -172,6 +190,7 @@ - (void)_updateAllFields { if (_fields & PFLogInFieldsLogInButton) { if (!_logInButton) { _logInButton = [[PFPrimaryButton alloc] initWithBackgroundImageColor:[PFColor loginButtonBackgroundColor]]; + _logInButton.accessibilityIdentifier = PFLogInViewLogInButtonAccessibilityIdentifier; [_logInButton setTitle:PFLocalizedString(@"Log In", @"Log In") forState:UIControlStateNormal]; [self addSubview:_logInButton]; } @@ -184,6 +203,7 @@ - (void)_updateAllFields { if (!_facebookButton) { _facebookButton = [[PFActionButton alloc] initWithConfiguration:[[self class] _defaultFacebookButtonConfiguration] buttonStyle:PFActionButtonStyleNormal]; + _facebookButton.accessibilityIdentifier = PFLogInViewFacebookButtonAccessibilityIdentifier; [self addSubview:_facebookButton]; } } else { @@ -195,6 +215,7 @@ - (void)_updateAllFields { if (!_twitterButton) { _twitterButton = [[PFActionButton alloc] initWithConfiguration:[[self class] _defaultTwitterButtonConfiguration] buttonStyle:PFActionButtonStyleNormal]; + _twitterButton.accessibilityIdentifier = PFLogInViewTwitterButtonAccessibilityIdentifier; [self addSubview:_twitterButton]; } } else { diff --git a/ParseUI/Classes/SignUpViewController/PFSignUpView.h b/ParseUI/Classes/SignUpViewController/PFSignUpView.h index e638327..e203515 100644 --- a/ParseUI/Classes/SignUpViewController/PFSignUpView.h +++ b/ParseUI/Classes/SignUpViewController/PFSignUpView.h @@ -49,6 +49,18 @@ typedef NS_OPTIONS(NSInteger, PFSignUpFields) { PFSignUpFieldsDismissButton) }; +/** + `PFSignUpFields`'s accessibity identifiers + + @see PFSignUpView + */ +extern NSString *const PFSignUpViewUsernameFieldAccessibilityIdentifier; +extern NSString *const PFSignUpViewEmailFieldAccessibilityIdentifier; +extern NSString *const PFSignUpViewPasswordFieldAccessibilityIdentifier; +extern NSString *const PFSignUpViewAdditionalFieldAccessibilityIdentifier; +extern NSString *const PFSignUpViewSignUpButtonAccessibilityIdentifier; +extern NSString *const PFSignUpViewDismissButtonAccessibilityIdentifier; + @class PFTextField; /** diff --git a/ParseUI/Classes/SignUpViewController/PFSignUpView.m b/ParseUI/Classes/SignUpViewController/PFSignUpView.m index c3f8c8e..5a35639 100644 --- a/ParseUI/Classes/SignUpViewController/PFSignUpView.m +++ b/ParseUI/Classes/SignUpViewController/PFSignUpView.m @@ -32,6 +32,17 @@ static NSString *const PFSignUpViewDefaultLogoImageName = @"parse_logo.png"; +///-------------------------------------- +#pragma mark - Accessibility Identifiers +///-------------------------------------- + +NSString *const PFSignUpViewUsernameFieldAccessibilityIdentifier = @"PFSignUpViewUsernameFieldAccessibilityIdentifier"; +NSString *const PFSignUpViewEmailFieldAccessibilityIdentifier = @"PFSignUpViewEmailFieldAccessibilityIdentifier"; +NSString *const PFSignUpViewPasswordFieldAccessibilityIdentifier = @"PFSignUpViewPasswordFieldAccessibilityIdentifier"; +NSString *const PFSignUpViewAdditionalFieldAccessibilityIdentifier = @"PFSignUpViewAdditionalFieldAccessibilityIdentifier"; +NSString *const PFSignUpViewSignUpButtonAccessibilityIdentifier = @"PFSignUpViewSignUpButtonAccessibilityIdentifier"; +NSString *const PFSignUpViewDismissButtonAccessibilityIdentifier = @"PFSignUpViewDismissButtonAccessibilityIdentifier"; + @implementation PFSignUpView #pragma mark - @@ -52,12 +63,14 @@ - (instancetype)initWithFields:(PFSignUpFields)otherFields { if (_fields & PFSignUpFieldsDismissButton) { _dismissButton = [[PFDismissButton alloc] initWithFrame:CGRectZero]; + _dismissButton.accessibilityIdentifier = PFSignUpViewDismissButtonAccessibilityIdentifier; [self addSubview:_dismissButton]; } _usernameField = [[PFTextField alloc] initWithFrame:CGRectZero separatorStyle:(PFTextFieldSeparatorStyleTop | PFTextFieldSeparatorStyleBottom)]; + _usernameField.accessibilityIdentifier = PFSignUpViewUsernameFieldAccessibilityIdentifier; _usernameField.autocorrectionType = UITextAutocorrectionTypeNo; _usernameField.autocapitalizationType = UITextAutocapitalizationTypeNone; _usernameField.returnKeyType = UIReturnKeyNext; @@ -66,6 +79,7 @@ - (instancetype)initWithFields:(PFSignUpFields)otherFields { _passwordField = [[PFTextField alloc] initWithFrame:CGRectZero separatorStyle:PFTextFieldSeparatorStyleBottom]; + _passwordField.accessibilityIdentifier = PFSignUpViewPasswordFieldAccessibilityIdentifier; _passwordField.placeholder = PFLocalizedString(@"Password", @"Password"); _passwordField.secureTextEntry = YES; _passwordField.autocorrectionType = UITextAutocorrectionTypeNo; @@ -80,6 +94,7 @@ - (instancetype)initWithFields:(PFSignUpFields)otherFields { if (_fields & PFSignUpFieldsEmail) { _emailField = [[PFTextField alloc] initWithFrame:CGRectZero separatorStyle:PFTextFieldSeparatorStyleBottom]; + _emailField.accessibilityIdentifier = PFSignUpViewEmailFieldAccessibilityIdentifier; _emailField.autocorrectionType = UITextAutocorrectionTypeNo; _emailField.autocapitalizationType = UITextAutocapitalizationTypeNone; _emailField.keyboardType = UIKeyboardTypeEmailAddress; @@ -95,6 +110,7 @@ - (instancetype)initWithFields:(PFSignUpFields)otherFields { if (_fields & PFSignUpFieldsAdditional) { _additionalField = [[PFTextField alloc] initWithFrame:CGRectZero separatorStyle:PFTextFieldSeparatorStyleBottom]; + _additionalField.accessibilityIdentifier = PFSignUpViewAdditionalFieldAccessibilityIdentifier; _additionalField.autocorrectionType = UITextAutocorrectionTypeNo; _additionalField.autocapitalizationType = UITextAutocapitalizationTypeNone; _additionalField.placeholder = PFLocalizedString(@"Additional", @"Additional"); @@ -104,6 +120,7 @@ - (instancetype)initWithFields:(PFSignUpFields)otherFields { if (_fields & PFSignUpFieldsSignUpButton) { _signUpButton = [[PFPrimaryButton alloc] initWithBackgroundImageColor:[PFColor signupButtonBackgroundColor]]; + _signUpButton.accessibilityIdentifier = PFSignUpViewSignUpButtonAccessibilityIdentifier; [_signUpButton setTitle:PFLocalizedString(@"Sign Up", @"Sign Up") forState:UIControlStateNormal]; [self addSubview:_signUpButton]; }