A11Y 는 무슨 말일까?
나는 이번에 이 단어를 처음 접하게 되었다. 아예 처음보는 단어라서 무슨 의미를 가지는지 보자마자 알 수 없었다.
하지만 웹 접근성과 관련된 단어였고 "Accessibility" 라는 단어를 축약형으로 사용된 것으로 시작되었다.
웹의 창시자인 팀 버너스 리는 웹을 "장애에 구애 없이 모든 사람들이 쉽게 정보를 공유할 수 있는 공간"이라고 설명했다.
이때 웹 접근성이 장애인을 고려하는 것도 있지만 꼭 장애인만을 고려해서 만드는 것은 아니다.
일상생활에서 계단의 경사로는 장애인을 위한 것일수도 있지만 무거운 짐을 들거나 유모차를 미는 사람에게도 접근하기 용이하다.
웹도 웹 접근성 지침에 "키보드만으로도 웹 콘텐츠가 제공하는 모든 기능을 수행할 수 있어야 한다." 라는 지침이 있다.
이 말은 마우스를 사용하기 힘든 장애인뿐만 아니라 마우스가 없어지거나 고장났을때의 상황에 놓인 사람들도 해당된다고 말할 수 있다.
이처럼 웹 접근성은 "누가 언제 어느 상황에서도 접근하기 쉽도록 만드는 것"이다.
WAI의 웹 콘텐츠 접근성 지침
폭발적으로 성장한 웹 서비스에 장애인의 접근성 관련 문제가 발생했다.
웹의 표준화 관련 국제 기구인 W3C에서는 이런 문제를 해결하기 위해 WAI라는 단체를 설립했다.
이 단체는 시각, 청각 기능에 장애를 가진 사람들도 웹에 접근하기 쉽도록 관련 지침을 개발하고 있다.
1) 인지성 : 정보와 사용자 인터페이스 요소는 인지할 수 있도록 사용자들에게 표시되어야 한다.
- 텍스트가 아닌 콘텐츠(이미지 등)에 대체 텍스트를 제공해야 한다.
- 동영상 같은 시각을 바탕으로 한 미디어에는 적절한 대안을 제공해야 한다. (자막이나 수화 등)
- 정보와 구조의 손실 없이 콘텐츠를 다른 방식으로 표현해 전달해야 한다.
2) 운용성 : 사용자 인터페이스 요소와 탐색은 운용가능해야 한다.
- 키보드로 모든 기능을 사용할 수 있도록 해야한다.
- 읽기와 같은 콘텐츠를 사용하는 사용자에게 충분한 시간을 제공해야 한다. (시간 연장 또는 정지 버튼)
- 발작을 일으킬 수 있는 콘텐츠를 디자인하면 안된다. (갑자기 동영상이 실행되거나 소리가 큰 경우)
- 사용자가 탐색하고 콘텐츠가 어디에 위치하는지 알 수 있도록 도움을 제공해야 한다.
3) 이해성 : 정보와 사용자 인터페이스 운용은 이해할 수 있어야 한다.
- 텍스트 콘텐츠를 판독하고 이해할 수 있도록 제공해야 한다.
- 웹 페이지 탑재와 운용을 예측가능하게 만들어야 한다.
- 사용자의 실수를 방지하고 수정할 수 있도록 도와야 한다.
4) 견고성 : 콘텐츠는 보조기술을 포함한 넓고 다양한 사용자 에이전트에 의존해 해석될 수 있도록 충분히 내구성을 가져야 한다.
- 보조기술을 포함한 현재와 미래 사용자 에이전트의 호환성을 극대화해야 한다.
이를 통해서 웹 접근성이라는 것은 생각보다 아주 고려해야할 사항이 많은 것으로 생각된다.
처음에 HTML5 구조를 짤 때 웹 접근성을 고려해 설계해야한다고 배웠다. 그래서 나도 그것들을 고려해 구조 설계를 했다고 생각했다.
이미지를 제공할 때 대체텍스트를 제공한다거나 이미지가 나올 때 슬로우를 걸어 천천히 나오게 하는 것들이다.
이번에 다시 웹접근성을 배우며 느꼈던 것은 마우스가 없는 사용자들을 그렇게 고려하지 않았던 것 같다.
그냥 단순히 쉽게 클릭하는 영역은 사용자들이 클릭하기 편하도록 넓게 만들어야한다. 라는 관점에서 항상 그렇게 해왔었다.
하지만 마우스가 없었을때는? 이 문제는 고려하지 않았다. 그래서 탭키를 눌렀을땐 어떤 동작을 하는지 잘 알지 못했다.
그래서 css에서 a:focus 라는 속성을 잘 쓰지 않았다. 탭키를 눌렀을 때도 사용자에게 어떤 것이 바뀌는지 알려 줄 필요성을 깨달았다.
생각보다 내가 고려할 점이 많았다. 이 부분에 대해서 깊게 고려하고 구조설계를 해야한다고 느꼈다.
그저 만든다라는 생각이 아닌 내 주변, 가족들에게 보여준다는 마음가짐으로 설계해야한다.
내가 언제 어디서 어떤 상황에서 사용하게 될지도 모르니 말이다. 앞으로 더 많은 것들을 고려하고 생각 할 수 있는 개발자가 되어야겠다.