fix(chat-room): 접근성 라벨 및 다국어 문자열 적용
- 레이아웃 contentDescription 하드코딩 제거 및 strings 리소스화 - ChatMessageAdapter 접근성 문구를 리소스 기반으로 변환 - values-en 추가로 안내/버튼/접근성/상태 문구 영문화 - 타이핑 인디케이터 접근성 라벨 추가
This commit is contained in:
@@ -323,11 +323,12 @@ class ChatMessageAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
|
||||
// 그룹 내부 간격 최소화 (상단 패딩 축소)
|
||||
adjustTopPadding(isGrouped)
|
||||
|
||||
// 접근성: 상태 포함 설명
|
||||
// 접근성: 상태 포함 설명 (리소스 기반)
|
||||
val ctx = binding.root.context
|
||||
val statusDesc = when (data.status) {
|
||||
MessageStatus.SENDING -> "전송 중"
|
||||
MessageStatus.FAILED -> "전송 실패"
|
||||
MessageStatus.SENT -> "전송 완료"
|
||||
MessageStatus.SENDING -> ctx.getString(R.string.status_sending)
|
||||
MessageStatus.FAILED -> ctx.getString(R.string.status_failed)
|
||||
MessageStatus.SENT -> ctx.getString(R.string.status_sent)
|
||||
}
|
||||
|
||||
val timeDesc = if (showTime) {
|
||||
@@ -336,8 +337,9 @@ class ChatMessageAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
|
||||
""
|
||||
}
|
||||
|
||||
val myPrefix = ctx.getString(R.string.a11y_my_message_prefix)
|
||||
binding.root.contentDescription =
|
||||
"내 메시지 ${binding.tvMessage.text}, $statusDesc, $timeDesc"
|
||||
"$myPrefix ${binding.tvMessage.text}, $statusDesc, $timeDesc"
|
||||
}
|
||||
|
||||
private fun adjustTopPadding(isGrouped: Boolean) {
|
||||
@@ -379,13 +381,16 @@ class ChatMessageAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
|
||||
// 그룹 내부 간격 최소화 (상단 패딩 축소)
|
||||
adjustTopPadding(isGrouped)
|
||||
|
||||
// 접근성
|
||||
// 접근성: 다국어 대응
|
||||
val ctx = itemView.context
|
||||
val messageWord = ctx.getString(R.string.a11y_message_word)
|
||||
itemView.contentDescription = buildString {
|
||||
if (!isGrouped && !binding.tvName.text.isNullOrEmpty()) {
|
||||
append(binding.tvName.text)
|
||||
append(" ")
|
||||
}
|
||||
append("메시지 ")
|
||||
append(messageWord)
|
||||
append(" ")
|
||||
append(binding.tvMessage.text)
|
||||
if (showTime) {
|
||||
append(", ")
|
||||
|
||||
Reference in New Issue
Block a user