[웹 접근성] 2. 웹 접근성 지침 (3) 유저 편의성 관련

2023. 3. 16.·🎨 프론트엔드 공부/기타

부스트코스 웹 접근성 이해

더보기

1. 웹 접근성의 이해
2. 웹 접근성 지침
3. 웹 접근성 진단도구와 스크린 리더

 

📍8. 키보드 사용 보장

✅모든 기능은 키보드만으로도 사용할 수 있어야 한다

 

✅마우스 오버 시 사용되는 아래 기능들에 대해서도 키보드 접근 시에도 동일한 기능이 수행되게 구현해야 한다

- 마우스 오버 시 GNB의 서브메뉴 노출 기능

- 자동 롤링 콘텐츠, 레이어를 노출하는 버튼

 

✅<img> 또는 <table> 처럼 focus를 받을 수 없는 엘리먼트에 마우스 이벤트를 적용하면 안됨

- focus를 받을 수 없으면 키보드로 접근이 불가하기 때문에 <a> 나 <button> 으로 대체하는 것이 좋다

- 그런데, <a> 엘리먼트에 href 어트리뷰트가 없으면 키보드 접근이 불가하므로, 반드시 사용해야 함

- href 어트리뷰트가 있어도, onfocus 어트리뷰트에 this.blur()로 focus 초기화버리면 키보드 접근 불가

 

📍9. focus 이동

✅키보드에 의한 foucs이동은 논리적으로 이동해야 하고, 시각적으로 보여야 한다

 

✅일반적으로 focus는 좌 -> 우, 상 -> 하 방향으로 이동하므로, 이를 준수해야 유저의 혼란 없음

- focus 이동이 논리적이지 않다면..

 

- 아이디 > 비밀번호 > 바로 로그인 버튼으로 이동해버려서 아이디 저장 기능을 사용하려면 탭을 한번 더 사용해야 함

 

✅tabindex 어트리뷰트로 focus 이동 순서를 의도적으로 변경할 수 있지만, 지양해야 한다

- 그보다 마크업을 논리적으로 배치해야 함

 

✅레이어 팝업 (Modal 같은) 노출 시 focus가 레이어 뒤에 유지되는 경우 주의

 

✅focus 표시

- hideFocus 어트리뷰트 또는, CSS에서 outline:none 처리, onfocus="this.blur()" 등은 focus를 사라지게 하므로 주의

 

📍10. 사용자 입력 및 컨트롤

✅사용자 입력 및 컨트롤(버튼 등)을 조작이 편리하게 제공

- 세밀한 마우스 컨트롤이 힘든 사람을 배려

- 컨트롤 대각선 길이 6mm 이상

- 또한 컨트롤 테두리 안으로 1px 이상의 여백이 필요 (padding)

 

📍11. 시간 제한이 있는 컨텐츠

✅시간 제한이 있는 컨텐츠는 유저에게 남은 시간 및 가능한 행동 정보를 충분히 제공해야 한다

- 종료 시간을 공지하고, 유지할 수단을 제공해야 함

- 반응 시간(최소 20초 이상)을 충분히 제공하는 사례1

 

- 반응 시간을 충분히 제공하는 사례2

 

✅페이지 자동 전환

- <meta> 엘리먼트의 refresh 어트리뷰트 등을 활용해 몇초 후 페이지가 자동 전환되는 경우, 스크린 리더 사용자의 혼란을 초래할 수 있음

- 따라서 유저가 직접 이동할 수 있도록 하는 것이 좋음

 

📍12. 정지 기능 제공

✅자동으로 변경되는 컨텐츠는 움직임을 제어할 수 있어야 한다

- 이전, 다음, 정지 등의 기능을 제공해야 함

- 정지 버튼이 없더라도 마우스 오버 or  키보드 접근 시 정지되면 OK

- 이전 컨텐츠를 다시 보고싶은데 다시 돌아갈 수 없으면 기다려야 해서 불편을 초래함

 

'🎨 프론트엔드 공부/기타' 카테고리의 다른 글
  • [웹 접근성] 2. 웹 접근성 지침 (5)
  • [웹 접근성] 2. 웹 접근성 지침 (4) 유저의 쉬운 인지 제고
  • [웹 접근성] 2. 웹 접근성 지침 (2) 다양한 시각적 대체 수단
  • [웹 접근성] 2. 웹 접근성 지침 (1) 개요, alt
지식물원
지식물원
지식이 자라는 식물원!
  • 지식물원
    지식물원
    지식물원
  • 전체
    오늘
    어제
    • 분류 전체보기 (510)
      • 🎨 프론트엔드 공부 (247)
        • JS & TS (86)
        • HTML & CSS (22)
        • React & Next (49)
        • Vue & Nuxt (22)
        • 기타 (68)
      • 🤓 기술 학습 & 공부 기록 (116)
        • Node.js (0)
        • Python (37)
        • 백엔드 (0)
        • 딥러닝 (1)
        • 컴퓨터 일반 (72)
        • 개발 인프라 (6)
      • 👨‍💻 프로젝트 경험 (6)
        • Work (0)
        • Toy (6)
      • ⚙️ 개발 팁 & 노하우 (21)
        • 프론트엔드 (6)
        • 기타 (15)
      • ☕️ 커리어 & 인터뷰 준비 (88)
        • 코딩 테스트 (88)
      • 📰 기술 트렌드 & 생각 정리 (4)
      • 📚 기타 (25)
        • 마케팅 (15)
        • 비개발서적 (10)
  • 블로그 메뉴

    • 태그
  • 링크

  • 공지사항

    • 모바일 접속 시 코드 하이라이팅 깨질 때
  • 인기 글

  • hELLO· Designed By정상우.v4.10.3
지식물원
[웹 접근성] 2. 웹 접근성 지침 (3) 유저 편의성 관련
상단으로

티스토리툴바