WCAG 2.1 항공사 WAI-ARIA 적용 사례
  • 모두를 위한 디자인
  • 항공사의 웹 접근성 준수 의무
  • 국내 접근성과 국제 접근성은 어떻게 다를까?
  • 항공사 접근성 위배로 인한 벌금 부과 사례
  • AOA 2023~
    • 주요 UI별 ARIA 적용 사례 (2022~2024)
      • 호버 콘텐츠 적용사례
      • 입력 글자 수 제한 사례
      • 🕹️Form 그룹의 오류 적용 사례
      • 비밀번호 실시간 오류 적용 사례
      • 🖼️SVG 이미지의 접근성 향상 방법
      • 오류메시지 종류별 적용 사례
      • 스낵바(Snack bar) 적용 사례
  • AOA 2019
    • 주요 UI별 ARIA 적용 사례 (2019)
      • 스핀 버튼 적용 사례
      • 페이지 네비게이터 적용 사례
      • 메인 네비게이션 구현 사례
      • 메뉴 적용 사례
      • 캐러셀 적용 사례
      • 채팅 상담 적용 사례
      • 툴팁 적용 사례
      • 그룹명 필수 항목 적용 사례
      • 이해하기 쉬운 데이터 테이블 적용 사례
      • 날짜 입력 적용 사례
    • 알아두면 좋은 TIP!
      • dl, dt, dd 태그를 남용하지 마세요.
      • 제발 나를 무시해 주세요.
      • 띄어쓰기를 주의하세요!
  • AOA 2018
    • 주요 UI별 ARIA 적용 사례 (2018)
      • 로딩 적용 사례
      • Date Picker 적용사례
      • 좌석선택 적용사례
      • 탭 UI 적용 사례
      • 모달 다이얼로그 적용 사례
      • 확장과 축소 콘텐츠 적용 사례
      • 정렬할 수 있는 table 적용 사례
      • 자동완성 적용 사례
      • 접근성 주요 개선 항목
        • 버튼을 왜 링크로 쓰는거지?
        • 그룹에게는 그룹명을 알려주자
        • 에러메세지는 왜 보이기만 하지?
        • 이해하기 어려운 폼 레이블
        • 화면을 보는 스크린리더 사용자
        • 전환되지 않는 페이지의 포커스
        • 동일한 기능의 서로 다른 UI
    • 알아두면 좋은 것들
      • role=application은 언제 사용할까?
      • 대문자로만 표현해야 할 때
      • 화면의 정렬을 위해 중복 태그를 사용하지 말 것
    • Screen Reader 테스트
      • Screen Reader와 Browser 조합
      • Screen Reader 버그
  • WAI-ARIA
    • Landmark Role
    • Widget Role & Attributes
  • Contact
    • 무엇이 궁금하세요?
Powered by GitBook
On this page
  • 복잡한 API를 개발했는데 어떻게 접근성을 준수할까?
  • 정말 복잡한 위젯 Date Picker
  • role="application"을 사용해야 할 때는 아래 3가지 조건 중 하나를 만족

Was this helpful?

Edit on Git
  1. AOA 2018
  2. 알아두면 좋은 것들

role=application은 언제 사용할까?

Previous알아두면 좋은 것들Next대문자로만 표현해야 할 때

Last updated 6 years ago

Was this helpful?

복잡한 API를 개발했는데 어떻게 접근성을 준수할까?

UX 디자인이 부각되면서 다양한 인터페이스가 등장했지만 모든 브라우저에서 동일하게 지원하는 적절한 HTML의 태그가 없는 경우가 많다. (요즘은 정말 부족함을 자주 느낀다... HTML 태그도 많이 만들어주세요...)

정말 복잡한 위젯 Date Picker

날짜 선택이 필요하여 date picker 컴포넌트를 개발했지만 모든 브라우저에서 동등하게 호환이 가능한 HTML 태그도 부족하고, ARIA 속성이 없는데 이런 경우 role="application"을 사용할 수 있다.

role="application"은 한 개 이상의 사용자의 인터랙션이 필요한 요소가 포함되었을 때 사용할 수 있는 Role 이다. 하지만, role="application"은 스크린리더가 사용하고 있던 기본 키보드 조작 기능을 사용할 수 없게 하기 때문에 꼭 필요한 경우에만 신중히 사용해야 한다.

role="application"을 사용해야 할 때는 아래 3가지 조건 중 하나를 만족

  1. 모든 브라우저에서 동등하게 호환이 가능한 native HTML 태그가 없을 때,

  2. ARIA에서 동일한 role이 없을 때,

  3. 만약에 동일한 ARIA role이 있지만, 보조기기에서 지원하지 않을 때

role="application" 영역은 스크린리더가 사용하고 있던 단축키와 같은 키보드 사용방법을 후킹하기 때문에 키보드 인터랙션 방법을 반드시 제공 해야 한다.

Date Picker 의 경우 모든 브라우저에서 호환이 가능한 HTML이 없고, ARIA role도 동일한 기능이 없기 때문에 사용했고, 스크린리더 사용자와 키보드 사용자를 위해 시각적으로 키보드 운용방법을 제공하였다.

<div>키보드 운용방법 :  화살표 키로 날짜를 탐색하고 Enter키로 날짜를 선택할 수 있습니다.</div>
<div role="application">
date picker 영역
</div>

role="application"을 사용하기 바로 전에 application 영역이 있다는 것을 사전에 알려주고 키보드 운용방법을 알려주는 것이 가장 좋은 방법이다.

스크린리더로 들어보면 아래와 같다.

키보드 운용방법 : 화살표 키로 날짜를 탐색하고 Enter키로 날짜를 선택할 수 있습니다. application

role="application"을 사용하면 키보드 인터랙션 구현이 쉬워지기 때문에 불필요함에도 불구하고 사용하여 구현하는 경우가 있는데 절대 그런 목적으로 사용해서는 안된다.