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
  • 로딩인지.. 스크린리더가 멈춘건지.. 다시 리프레시!
  • 다음의 2가지는 반드시 스크린리더가 읽어야 한다.
  • 로딩이 시작되었다는 것을 알리기
  • 로딩이 종료되었다는 것을 알리기

Was this helpful?

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

로딩 적용 사례

Previous주요 UI별 ARIA 적용 사례 (2018)NextDate Picker 적용사례

Last updated 2 years ago

Was this helpful?

로딩인지.. 스크린리더가 멈춘건지.. 다시 리프레시!

일반적으로 페이지가 로딩 중인 경우 화면은 멈춰있고 스크린리더도 아무것도 읽지 않게 되면, 스크린리더 사용자들은 오류로 멈춘 것으로 오해하고 리프레시를 누르는 경우가 왕왕 있다.

항공편 검색이나 예약조회를 하게 되면 서버에서 데이터를 부르기 위해 로딩이 뜨게 된다. 이 때 시각적으로 로딩 중이라는 것을 보여주게 되는데 스크린리더 사용자에게도 동등하게 알려주어야야 한다.

다음의 2가지는 반드시 스크린리더가 읽어야 한다.

  1. 로딩이 시작되었다는 것을 읽기

  2. 로딩이 종료되었다는 것을 읽기

페이지가 로드될 때부터 aria-live 속성을 삽입한 비어있는 로딩의 시작과 종료 요소는 같이 존재한다.

<div id="loading-start" aria-live="assertive"></div>
<div id="loading-end" aria-live="assertive"></div>

로딩이 시작되었다는 것을 알리기

로딩이 시작되면 role="alert" 속성이 삽입되고, 비어있는 loading-start 안에 로딩 내용이 삽입된다.

<div id="loading-start" aria-live="assertive" role="alert">
    <div class="offscreen">please wait while we gather your information, 
    Loading...</div>
</div>
<div id="loading-end" aria-live="assertive"></div>

로딩이 종료되었다는 것을 알리기

로딩 소스는 삽입되었던 role="alert" 속성과 함께 일정 시간이 지나면 삭제되고, 하단 로딩 종료를 위한 소스에 종료되었다는 문구가 삽입된다.

<div id="loading-start" aria-live="assertive"></div>
<div id="loading-end" aria-live="assertive">
    <div class="offscreen">Loading has been completed</div>
</div>

로딩이 끝나면 삽입되었던 종료 소스도 삭제되고, 처음 존재했었던 소스만 남긴다.

<div id="loading-start" aria-live="assertive"></div>
<div id="loading-end" aria-live="assertive"></div>

스크린리더로 읽게 되면 아래와 같다.

alert Please wait while we gather your information. Loading..

Loading has been completed.

로딩 시작할 때만 role="alert" 속성이 삽입된 이유 role="alert" 속성은 스크린리더가 읽고 있는 것을 중지하고 주위를 환기시키고 집중할 수 있게 하기 때문에 로딩중이라는 것을 바로 인지할 수 있다. 하지만, 종료 시 role="alert" 속성을 넣게 되면 로딩 시작 문구를 중간에 끊어서 제대로 읽지 않기 때문에 종료에는 삭제하고 스크린리더가 읽던 것을 다 읽은 후에 종료되었다는 것을 읽도록 aria-live="assertive" 속성만 넣는다.

AOA동영상 강의