MDCTextField Accessibility

Like UITextFields, MDCTextFields are accessible by default. To best take advantage of their accessibility features please review the following recommendations.

-accessibilityValue Behavior

Similar to UITextFields, MDCTextFields are not accessibility elements themselves. Rather, they are accessibility containers whose subviews act as accessibility elements. Such subviews include the MDCTextField‘s placeholder label, the leading and trailing underline labels, and the clear button. The accessibilityLabels of these subviews contribute to the accessibilityValue of the MDCTextField as a whole, giving it a value consistent with that of a UITextField in a similar state. If the MDCTextField is empty, it will return a combination of any placeholderLabel text and leading underline text. If the MDCTextField is not empty, it will return a combination of the MDCTextField’s current text and any leading underline text.

Using -accessibilityLabel

MDCTextField does not provide a custom implementation for accessibilityLabel. The client is free to set an appropriate accessibilityLabel following norms established by Apple if they wish. However, they should consider whether or not it it will provide information that is superfluous. A common scenario in which an accessibilityLabel might not be necessary would be an MDCTextField whose leading underline label (a view not present in UITextFields) conveys the information that an accessibility label might have otherwise conveyed. For example, if an MDCTextField is intended to hold a user‘s zip code, and the leading underline label’s accessibilityLabel is already “Zip code”, setting an accessibilityLabel of “Zip code” on the MDCTextField may lead to duplicate VoiceOver statements.

Using -accessibilityHint

In general, Apple advises designing your user interface in such a way that clarification in the form of an -accessibilityHint is not needed. However, it is always an option.