How can I set an accessibility trait for the placeholder text in UITextField?

前端 未结 3 890
旧巷少年郎
旧巷少年郎 2021-01-17 22:09

I\'m going through our iOS app to fix accessibility issues. One of the features of the app is a UITextField in which the user can enter search queries. I\'ve set the trait

3条回答
  •  情书的邮戳
    2021-01-17 23:10

    I believe you can set the accessibilityLabel and other accessibility properties on an NSString object and then use that string as your placeholder text. Voiceover will discover that property and use it.

    NSString *placeholderText = @"Search";
    placeholderText.accessibilityLabel = @"Try searching for xxxx";
    field.placeholder = placeholderText;
    

    Something like that. Untested, but I saw it in one of the WWDC developer videos.

    WARNING: The behavior in iOS 8.0 and up is not as expected.

    //In iOS 8+
    NSString *placeholderText = @"Search"; //This will be announced
    placeholderText.accessibilityLabel = @"Try searching for xxxx";//This will be ignored
    field.placeholder = placeholderText;
    

    This answer should be considered outdated.

提交回复
热议问题