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
  • 국가/언어 선택 영역
  • aria-expanded와 aria-controls
  • 키보드의 포커스 이동

Was this helpful?

Edit on Git
  1. AOA 2018
  2. 주요 UI별 ARIA 적용 사례 (2018)

확장과 축소 콘텐츠 적용 사례

Previous모달 다이얼로그 적용 사례Next정렬할 수 있는 table 적용 사례

Last updated 2 years ago

Was this helpful?

국가/언어 선택 영역

Region/Language 버튼을 선택하면 국가와 언어를 선택할 수 있는 콘텐츠가 확장되는데 확장/축소 기능의 대표적인 사례이다.

다이얼로그와 비슷해 보이지만 다이얼로그는 아니므로 role="dialog"는 사용하지 않아야 한다.

확장과 축소 기능은 가장 쉽고 많이 사용하는 기능 중에 하나이다. 사용도 쉽고 간편한 것처럼 스크린리더 사용자에게도 간단한 ARIA의 사용으로 시각적으로 보여지는 것처럼 알려줄 수 있다.

aria-expanded와 aria-controls

확장과 축소가 되는 버튼 영역은 <button>으로 마크업하고, 확장되었을 때는 aria-expanded="true", 축소되었을 때는 aria-expanded="false"를 삽입한다. 그리고 확장과 축소되는 콘텐츠의 컨테이너의 id와 aria-controls로 연결한다.

aria-expanded를 사용하면 확장이나 축소된 상태를 스크린리더가 읽게 되므로, 숨김텍스트로 상태를 중복으로 제공하지 않도록 해야 한다.

<button aria-controls="site-select" aria-expanded="true">Region/Language</button>
<div id="site-select" aria-hidden="false">
    <label for="utilnav-country-selector">Select a country/region</label>
    ...
</div>

키보드의 포커스 이동

버튼을 눌러 콘텐츠가 확장되면 포커스는 그대로 버튼 요소에 유지되어야 하고 tab키로 콘텐츠 안으로 이동해야한다. 그리고 콘텐츠 안에서 포커스가 밖으로 나가게 되면 확장 콘텐츠는 닫힌다.

스크린리더로 읽어보면 다음과 같이 들리게 된다.

Region/Language 버튼 확장됨

확장 콘텐츠가 배경 콘텐츠를 가리게 되는 경우에 포커스가 나가게 되면 확장된 콘텐츠를 닫아야 하고 그렇지 않은 경우에는 닫히지 않아도 된다.

AOA동영상 강의