Accessibility in Xamarin Segmented Control (SfSegmentedControl)

18 May 20211 minute to read

The segmented control supports automating each segment item in control using the AutomationId property. The AutomationId value given for control will be appended with each segment item’s text value, and it can be used for writing automation scripts. The following code snippet explains how to set AutomationId value to the segmented control.

<syncfusion:SfSegmentedControl AutomationId="SegmentedControl1" ItemsSource="{Binding Segments}" />
ViewModel viewModel = new ViewModel();
SfSegmentedControl sfSegmented = new SfSegmentedControl();
sfSegmented.AutomationId = "SegmentedControl1";
sfSegmented.ItemsSource = viewModel.Segments;

public class ViewModel
{
    public ObservableCollection<SfSegmentItem> Segments { get; set; }

    public ViewModel()
    {
        Segments = new ObservableCollection<SfSegmentItem>();
        Segments.Add(new SfSegmentItem() { Text = "Max" });
        Segments.Add(new SfSegmentItem() { Text = "Roger" });
        Segments.Add(new SfSegmentItem() { Text = "Evans" });
        Segments.Add(new SfSegmentItem() { Text = "John" });
        Segments.Add(new SfSegmentItem() { Text = "Peter" });
        Segments.Add(new SfSegmentItem() { Text = "Mike" });
    }    
}

The following table shows that the AutomationId value is set to each segment item in control for the above code snippet.

Segment item AutomationId
Max SegmentedControl1_Max
Roger SegmentedControl1_Roger
Evans SegmentedControl1_Evans
John SegmentedControl1_John
Peter SegmentedControl1_Peter
Mike SegmentedControl1_Mike