Developer notes
- A segmented control is a linear set of two or more segments, each of which functions as a mutually exclusive button
Name
- Name matches the inside tab text
- iOS Options
- setTitle( ) method
- Set a label in Interface Builder in the Identity Inspector
- accessibilityLabel
- (accessibilityLabel overrides setTitle)
- Android Options
- android:text XML attribute
- contentDescription
- (contentDescription overrides android:text)
Role
- iOS
- UISegmentedControl
- Android
- Tabs
- Button or Image Button
Groupings
- n/a
State
- Selected state is announced for the control in group that is focused
- iOS Options
- Active: isEnabled property
- Disabled: UIAccessibilityTraitNotEnabled. Announcement: dimmed
- UIControlState or isSelected, UIAccessibilityTraitNotEnabled
- Selected: Announced as “selected”
- Not selected: Announced as “double tap to select” as hint
- Android Options
- Active: android:enabled=true
- Disabled: android:enabled=false. Announcement: disabled
- setSelected
- Selected: Announced as “selected”
Focus
Only manage focus when needed. Primarily, let the device manage default focus.
Consider how focus should be managed between child elements and their parent views.
- iOS Options
- accessibilityElementIsFocused
- isAccessibilityElement - Yes, if the element can respond to user input
- To move screen reader focus to newly revealed content: UIAccessibilityLayoutChangedNotification
- To NOT move focus, but announce new content: UIAccessibilityAnnouncementNotification
- Android Options
- android:focusable=true
- android=clickable=true
- Implement an onClick( ) event handler for keyboard, not onTouch( )
- nextFocusDown
- nextFocusUp
- nextFocusRight
- nextFocusLeft
- accessibilityTraversalBefore (or after)
- To move screen reader focus to newly revealed content: Type_View_Focused
- To NOT move focus, but announce new content: accessibilityLiveRegion
- To hide controls: Important_For _Accessibility_NO