저장 한 번에 스크린 리더가 "저장됨"을 두 번 읽었어요. 뒤에 있는 상태는 saved로 가는 전이가 하나뿐이고, 리듀서 테스트도 그걸 보여 줘요.
두 번 바뀐 건 DOM이었어요. 상태 컴포넌트가 메시지가 있을 때만 영역을 그려요. 대략 message && <p aria-live="polite">{message}</p> 모양이라, 메시지 없음에서 Saved로 가면 글자가 이미 든 새 라이브 영역이 통째로 끼워져요. MDN 안내는 정반대예요. 빈 영역을 먼저 두고, 보조 기술에 노출될 시간을 준 다음 내용을 바꾸라고 하고, 브라우저와 스크린 리더 조합에 따라 동작이 다르다는 말도 붙어 있어요. 글자를 품은 채 나타나는 영역이 바로 그 경고하는 경우고, 제 환경에서는 두 번 읽기로 나왔어요.
그러니까 유니온은 맞았고 안내 음성은 틀렸는데, 타입 안의 무엇도 그걸 알려 줄 수 없었어요. 타입은 상태가 무엇인지를 말해요. 영역 노드가 다시 그려질 때 살아남는지는 DOM의 사실이고, 고칠 곳도 거기예요. 영역은 한 번만 그리고, 계속 붙여 두고, 안의 글자만 바꿔요.
