Grouping in accessibility , means that , to add focus on parent layout , and no child layout will get the focus separately .
Traversing the child elements , one by another ,increases the steps , and also visually -impaired persons may face difficulty to understand the whole view-group , so to reduce these issues , grouping can be done.
RecyclerView , is a good example to understand the grouping scenario.
EmployeeData is showing in RecyclerView , having 3 textviews .When the grouping was not done , talkback will traverse each and every textview , like this :
And in adapter class :
Here in adapter class all the 3 textviews' text have been appended and set content description of layoutParent , which will look like this :
Traversing the child elements , one by another ,increases the steps , and also visually -impaired persons may face difficulty to understand the whole view-group , so to reduce these issues , grouping can be done.
RecyclerView , is a good example to understand the grouping scenario.
EmployeeData is showing in RecyclerView , having 3 textviews .When the grouping was not done , talkback will traverse each and every textview , like this :
Recycler View before grouping |
- To add grouping , all the child elements need to set android:importantForAccessibility="no" which will hide the child elements from talkback .
- And add android:importantForAccessibility="yes" to container layout of row_item , which will set focus to the container layout (ViewGroup) .
- Also add appropriate content description to container layout .
<androidx.constraintlayout.widget.ConstraintLayout android:importantForAccessibility="yes" android:id="@+id/layoutParent"> <ImageView android:id="@+id/image_emp" android:importantForAccessibility="no"/> <TextView android:id="@+id/textEmployeeName" android:importantForAccessibility="no"/> <TextView android:id="@+id/textEmployeeId" android:importantForAccessibility="no" /> <TextView android:id="@+id/textJoining" android:importantForAccessibility="no" /> </androidx.constraintlayout.widget.ConstraintLayout>
And in adapter class :
textEmployeeName.text = "Employee Name : ${employee.empName}" textEmployeeId.text = "Employee ID: ${employee.empId}" textJoining.text = "Joining Date: ${employee.empJoiningDate }" layoutParent.contentDescription = textEmployeeName.text.toString()+" " + textEmployeeId.text.toString()+" "+ textJoining.text.toString()+" "
Here in adapter class all the 3 textviews' text have been appended and set content description of layoutParent , which will look like this :
RecyclerView after grouping |
No comments:
Post a Comment