GAAD 서약 - 1년 후
페이스북이 GAAD Pledge를 통해 React Native의 접근성을 개선하겠다고 약속한 지 1년이 되었다. 이 프로젝트는 우리의 기대를 뛰어넘는 성과를 거두었다. 우리는 이 프로젝트가 2021년에도 계속될 것임을 발표하게 되어 기쁘며, 지금까지의 진행 상황을 모두에게 공유하고자 한다. 지난해 React Native의 접근성 격차를 철저히 분석한 후, 이러한 격차를 해소하기 위한 작업이 시작되었다.
우리는 90개의 중요 격차 분석 이슈로 시작했으며, 2021년 3월 GitHub에서 프로젝트가 시작된 이후 현재까지 다음과 같은 성과를 거두었다:
-
커뮤니티가 11개의 이슈를 해결했다.
-
React Native 팀이 19개의 이슈를 평가하고 해결했다.
-
9개의 풀 리퀘스트가 병합되었다.
-
React Native 문서에 1개의 풀 리퀘스트가 병합되었다.
지난 1년간 더 나은 React Native 접근성을 위해 큰 진전을 이룬 React Native 커뮤니티에 감사와 존경을 표한다. 모든 기여자의 노력이 React Native 접근성 개선에 중요한 역할을 했다.
수정 사항
9개의 풀 리퀘스트를 통해 여러 컴포넌트에서 두 가지 유형의 이슈가 해결되었고, API에 새로운 기능이 추가되었습니다.
-
7개의 컴포넌트에서 비활성 상태(Disabled state)와 관련된 이슈가 해결되었습니다.
-
2개의 컴포넌트에서 선택 상태(Selected state)와 관련된 이슈가 해결되었습니다.
-
React Native API에 새로운 기능이 추가되어 AccessibilityManager.getRecommendedTimeoutMillis()를 쿼리할 수 있는 기능이 추가되었습니다.
비활성화 상태 알림 및 비활성화 기능
간극 분석 과정에서 발견된 가장 흔한 문제 중 하나는 일부 컴포넌트가 기능을 알리지 않거나 비활성화하지 않는 것이었다. 이제 일곱 개의 컴포넌트가 비활성화 상태를 알리거나 클릭 기능을 비활성화한다.
비활성화 시 알림
비활성화 prop이 있을 때 클릭 기능 비활성화
-
Button
- #31001 -
Text
- React Native Team commit -
Pressable
- React Native Team commit -
TouchableHighlight
- #31135 -
TouchableOpacity
- #31108 -
TouchableNativeFeedback
- #31224 -
TouchableWithoutFeedback
- #31297
선택 상태 알림 개선
포커스 상태에서 선택 상태를 알리지 않던 일부 컴포넌트들이 있었습니다. 이 문제는 컴포넌트가 포커스 상태일 때 AccessibilityState가 selected로 설정되거나 컴포넌트가 selected로 변경될 때 알림이 발생하도록 수정되었습니다.
선택 상태 알림이 추가된 컴포넌트:
접근성 타임아웃 설정
이전에는 Android에서 접근성 타임아웃 설정을 조회할 방법이 없었다. 이번 수정으로 AccessibilityManager.getRecommendedTimeoutMillis()
를 통해 조회할 수 있게 되었다. 이 기능은 UI 엘리먼트가 자동으로 사라지거나 진행되기 전의 "조치 시간"을 조회한다.
문서 업데이트
React Native 문서는 사용 가능한 API에 추가되거나 변경된 사항을 반영하기 위해 업데이트해야 한다. React Native 문서의 새로운 추가 내용은 AccessibilityInfo에 getRecommendedTimeoutMillis()
가 추가된 것을 다룬다.
커뮤니티 기여
아래에 소개된 모든 기여자들에게 깊은 감사를 전한다. 풀 리퀘스트를 제출하고 머지한 분들, 그리고 이슈를 리뷰하고 코멘트를 남긴 모든 분들의 노력에 감사드린다.
병합된 풀 리퀘스트
- @huzaifaaak 님이 3개의 이슈를 처리했습니다:
- @natural_clar 님이 1개의 이슈를 처리했습니다:
- fabriziobertoglio1987 님이 2개의 이슈를 처리했습니다:
- @kyamashiro73 님이 1개의 이슈를 처리했습니다:
- @grgr-dkrk 님이 1개의 이슈를 처리하고 React Native 문서에 추가했습니다:
- @crloscuesta 님이 1개의 이슈를 처리했습니다:
- @chakrihacker 님이 1개의 이슈를 처리했습니다:
다른 방식으로 시간을 내어 기여한 커뮤니티 멤버들에게 감사드립니다!
Simek, saurabhkacholiya, meehawk, intergalacticspacehighway, chrisglein, jychiao, 그리고 Waltari10
함께 참여하세요!
우리는 많은 진전을 이루었지만 아직 끝내지 못했습니다. 마무리하기 위해 여러분의 도움이 필요합니다. Facebook의 React Native 팀은 접근성 격차 분석 이슈를 해결하는 기여자들을 지원하기로 약속했습니다. 그들은 접근성 이슈에 대한 댓글에 계속 응답하고 풀 리퀘스트를 처리할 예정입니다. React Native 팀은 또한 가장 어려운 접근성 격차 분석 이슈 중 일부를 해결하고 있습니다. 이 작업에는 접근성 역할(accessibilityRoles)을 다른 언어로 정확히 번역하는 것과 특정 컴포넌트에 대한 오류 텍스트를 명시하는 것이 포함됩니다.
나머지 작업을 함께 해결해 보세요. 개선된 React Native 접근성 프로젝트 보드에는 아직 해결되지 않은 접근성 이슈가 남아 있습니다. 체크/언체크 상태, 컬렉션 진입/퇴장, 그리고 컬렉션 내 위치와 같은 이슈들은 현재와 새로운 기여자들이 더 접근성 높은 React Native를 만들기 위해 기여할 수 있는 좋은 기회입니다.
더 알아보기
갭 분석이 어떻게 진행되었는지 Facebook Tech 블로그에서 읽어보거나, GitHub 이슈 출시에 관한 내용을 React Native 블로그에서 확인할 수 있다.