안드로이드 앱은 각 요소별로 접근성 요소를 넣어줘야 한다.
즉, 시각장애인을 위하여 각 UI별로 기계가 대신 읽어줄 수 있게 해줘야 하는 것이다.
만약 Text 요소가 들어간 항목은 그 텍스트를 그대로 읽어주기 때문에 문제될게 없다.
그리고 Icon이나 Image는 Jetpack compose에 contentdescription을 옵션으로 넣어줄 수 있으므로 그렇게 하면 된다.
예를들면 Image는 다음과 같이 contentDescription이라는 변수를 설정할 수 있으므로 여기에 다가 해당 컨텐츠의 접근성 요소를 할당하면 된다.
Image(painter = painter, contentDescription = "Profile Image", modifier = Modifier .wrapContentSize() clickable { launcher.launch("image/*") }, contentScale = ContentScale.Crop)
그런데 contentDescription이 매개변수가 아닌 compose들이 존재한다.
checkbox가 대표적이다. 이런 것들은 modifier를 이용해야 한다.
다음과 같이 semantics라는 Modifier를 설정해 주면 접근성 문제를 해결할 수 있다.
Checkbox( checked = isContinuous, onCheckedChange = { isContinuous = it }, // 기타 modifier = Modifier.semantics { this.contentDescription = "계속범인지 여부" } )
구글의 설명은 이 링크를 참조하라