Developer notes
A stepper is a two-segment control used to increase or decrease an incremental value
Name
-
Name includes the purpose and describes the item changing, matching any visible label and references the number shown between stepper (if visible). Example - Phone is visible label and 3 is the number between the increment buttons: “Removes one phone from 3 phones, button”.
- iOS Options
- Container class {stepper + label}
- Set a label in Interface Builder in the Identity Inspector
- Group visible text label and the control in the same view container: accessibilityFrameInContainerSpace or Stackview
- setTitle( ) method
- If no visible label, use accessibilityLabel on control
- Hint is used only if the results of interacting with it are not obvious from the control’s label.
- Match visible label, if any
- To hide labels from VoiceOver announcements, uncheck the Accessibility Enabled checkbox in the Identity Inspector
- If hiding visible label, use accessibilityLabel on control
- Android Options
- android:text XML attribute
- Optional: use contentDescription for a more descriptive name, depending on type of view and for elements without a visible label.
- contentDescription overrides android:text
- Use labelFor attribute to connect the visible label to the control
Role
- iOS
- UIStepper Class
- UIAccessibilityTraitAdjustable must be linked to the
accessibilityIncrement()
andaccessibilityDecrement() methods.
- Android
- Extend the most relevant View subclass as is relevant to this control
- Button or ImageButton
Groupings
n/a
State
- iOS
- Active: isEnabled property
- Disabled: UIAccessibilityTraitNotEnabled
- Announcement: dimmed
- Android
- Active: android:enabled=true
- Disabled” android:enabled=false
- Announcement: disabled
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