관리 메뉴

Daily Front_Minhhk

μ›Ή μ ‘κ·Όμ„±, WAI-ARIA λ³Έλ¬Έ

Codeκ°œλ°œμΌμ§€

μ›Ή μ ‘κ·Όμ„±, WAI-ARIA

Minhhk 2023. 1. 2. 16:27
 πŸ’‘ μ›Ή μ ‘κ·Όμ„±(Web Accessibility)

 

일반적으둜 μ›Ή 접근성은 μž₯애인, 고령자 등이 μ›Ή μ‚¬μ΄νŠΈμ—μ„œ μ œκ³΅ν•˜λŠ” 정보에

λΉ„μž₯애인과 λ™λ“±ν•˜κ²Œ μ ‘κ·Όν•˜κ³  이해할 수 μžˆλ„λ‘ 보μž₯ν•˜λŠ” 것을 λœ»ν•©λ‹ˆλ‹€.

μ›Ή 접근성을 κ°–μΆ”λ©΄ 얻을 수 μžˆλŠ” 효과

1. μ‚¬μš©μžμΈ΅ ν™•λŒ€

μ›Ή 접근성을 ν™•λ³΄ν•˜λ©΄ μž₯애인, 고령자 λ“± 정보 μ†Œμ™Έ 계측도 μ›Ή μ‚¬μ΄νŠΈλ₯Ό 자유둭게 μ΄μš©ν•  수 있게 λ©λ‹ˆλ‹€.

그만큼 μ‚¬μ΄νŠΈμ˜ 이용자λ₯Ό 늘릴 수 있고, μƒˆλ‘œμš΄ 고객측을 확보할 수 있게 λ©λ‹ˆλ‹€.

μ‹€μ œλ‘œ μ›Ή μ ‘κ·Όμ„± ν–₯상을 톡해 맀좜이 μ¦κ°€ν•œ μ™Έκ΅­ μ‡Όν•‘λͺ° 사둀도 있으며, κ΅­λ‚΄ 온라인 μ‡Όν•‘λͺ°μ—μ„œλ„ λ…Έλ…„μΈ΅μ˜ 맀좜이 증가 μΆ”μ„Έλ₯Ό 보이고 μžˆμŠ΅λ‹ˆλ‹€.

2. λ‹€μ–‘ν•œ ν™˜κ²½ 지원

μ•žμ„œ 이야기 ν–ˆλ“― 정보 μ†Œμ™Έ 계측이 μ•„λ‹ˆλ”λΌλ„ 정보에 μ ‘κ·Όν•˜κΈ° μ–΄λ €μš΄ 상황에 μ²˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μš΄μ „ 쀑이라 화면을 보기 μ–΄λ ΅κ±°λ‚˜, 마우슀λ₯Ό μ‚¬μš©ν•  수 μ—†λŠ” 상황 등이 μžˆμŠ΅λ‹ˆλ‹€.

μ›Ή 접근성을 ν–₯μƒμ‹œν‚€λ©΄ λ‹€μ–‘ν•œ ν™˜κ²½, λ‹€μ–‘ν•œ κΈ°κΈ°μ—μ„œμ˜ μ›Ή μ‚¬μ΄νŠΈλ₯Ό 자유둭게 μ‚¬μš©ν•  수 있게 λ˜λ―€λ‘œ μ„œλΉ„μŠ€μ˜ μ‚¬μš© λ²”μœ„κ°€ ν™•λŒ€λ©λ‹ˆλ‹€.

μžμ—°μŠ€λŸ½κ²Œ μ„œλΉ„μŠ€μ˜ 이용자 수 증가λ₯Ό κΈ°λŒ€ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

3. μ‚¬νšŒμ  이미지 ν–₯상

κΈ°μ—…μ˜ μ‚¬νšŒμ  μ±…μž„μ— λŒ€ν•œ μ€‘μš”μ„±μ΄ 점점 μ¦κ°€ν•˜κ³ μžˆλŠ” μƒν™©μ—μ„œ, μ›Ή μ ‘κ·Όμ„± 확보λ₯Ό 톡해 기업이 정보 μ†Œμ™Έ 계측을 μœ„ν•œ μ‚¬νšŒ κ³΅ν—Œ 및 볡지 ν–₯상에 νž˜μ“°κ³  μžˆμŒμ„ 보여쀄 수 μžˆμŠ΅λ‹ˆλ‹€.

κΈ°μ—…μ˜ μ‚¬νšŒμ  이미지가 ν–₯μƒλ˜λ©΄ 그만큼 이용자 수의 μ¦κ°€λŠ” λ¬Όλ‘  μΆ©μ„± 고객을 확보할 수 μžˆλŠ” κ°€λŠ₯성이 λŠ˜μ–΄λ‚˜κ²Œ λ©λ‹ˆλ‹€.

 

 


 

 

πŸ‘πŸ» μΈμ‹μ˜ μš©μ΄μ„±
πŸ‘πŸ» 운용의 μš©μ΄μ„±
πŸ™ŒπŸ» μ΄ν•΄μ˜ μš©μ΄μ„±
🀟🏻 견고성

 

β˜‘οΈ μΈμ‹μ˜ μš©μ΄μ„±(Perceivable)

: λͺ¨λ“  μ½˜ν…μΈ λŠ” μ‚¬μš©μžκ°€ 인식할 수 μžˆμ–΄μ•Ό ν•œλ‹€.

 

1. μ μ ˆν•œ λŒ€μ²΄ ν…μŠ€νŠΈ

: ν…μŠ€νŠΈκ°€ μ•„λ‹Œ μ½˜ν…μΈ λŠ” κ·Έ μ˜λ―Έλ‚˜ μš©λ„λ₯Ό 이해할 수 μžˆλ„λ‘ λŒ€μ²΄ ν…μŠ€νŠΈλ₯Ό μ œκ³΅ν•΄μ•Ό ν•œλ‹€.

  • μ‹œκ°μ μœΌλ‘œ 화면을 인식할 수 μ—†λŠ” μ‚¬μš©μž ν˜Ήμ€ 상황을 λŒ€λΉ„ν•΄μ„œ λŒ€μ²΄ ν…μŠ€νŠΈλ₯Ό μ œκ³΅ν•  ν•„μš”κ°€ μžˆμŠ΅λ‹ˆλ‹€.
    • alt μ†μ„± μ‚¬μš©ν•˜κΈ°
    • <img src="이미지 μ£Όμ†Œ" alt="λŒ€μ²΄ ν…μŠ€νŠΈ" />
  • λ°°κ²½ 이미지와 같이 정보λ₯Ό 인식할 ν•„μš”κ°€ μ—†λŠ” κ²½μš°μ—λŠ” alt κ°’μœΌλ‘œ 빈 λ¬Έμžμ—΄μ„ μ£Όμ–΄ 슀크린 리더가 μΈμ‹ν•˜μ§€ μ•Šκ²Œ ν•©λ‹ˆλ‹€.
    • 정보 전달이 ν•„μš”ν•œ μ½˜ν…μΈ μ— 빈 λ¬Έμžμ—΄μ„ μž…λ ₯ν•  경우 ν•΄λ‹Ή μ½˜ν…μΈ μ˜ 쑴재 μžμ²΄λ„ μΈμ‹ν•˜μ§€ λͺ»ν•˜κ²Œ λ˜λ―€λ‘œ μ£Όμ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€.
  • 인접 μš”μ†Œμ˜ λ‚΄μš©μ—μ„œ μ΄λ―Έμ§€μ˜ 정보λ₯Ό μΆ©λΆ„νžˆ 인지할 수 μžˆλŠ” κ²½μš°μ—λ„ alt κ°’μœΌλ‘œ 빈 λ¬Έμžμ—΄μ„ μ£ΌλŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. 이 κ²½μš°μ—λŠ” λŒ€μ²΄ ν…μŠ€νŠΈλ₯Ό μž‘μ„±ν•  경우 이미지 정보λ₯Ό μ€‘λ³΅ν•΄μ„œ μ œκ³΅ν•˜κ²Œ λ©λ‹ˆλ‹€.

 

2. μžλ§‰ 제곡

: λ©€ν‹°λ―Έλ””μ–΄ μ½˜ν…μΈ μ—λŠ” μžλ§‰, 원고 λ˜λŠ” μˆ˜ν™”λ₯Ό μ œκ³΅ν•΄μ•Ό ν•œλ‹€.

  • μžλ§‰μ„ ν¬ν•¨ν•œ λ™μ˜μƒ μ‚¬μš©ν•˜κΈ°
  • μžλ§‰μ„ μ§€μ›ν•˜λŠ” λ©€ν‹°λ―Έλ””μ–΄ ν”Œλž«νΌ μ‚¬μš©ν•˜κΈ°
  • λΉ„λ””μ˜€ μš”μ†Œ μ•ˆμͺ½μ— track μš”μ†Œλ₯Ό μ‚¬μš©ν•˜μ—¬ μžλ§‰ 파일 뢈러였기
  • <video ... ><track src="μžλ§‰.vtt" kind="captions" /></video>
  • μžλ§‰μ„ μ œκ³΅ν•˜κΈ° μ–΄λ €μš΄ 경우 λŒ€λ³Έ λ˜λŠ” μˆ˜μ–΄λ₯Ό μ œκ³΅ν•˜κΈ°

 

3. 색에 λ¬΄κ΄€ν•œ μ½˜ν…μΈ  인식

: μ½˜ν…μΈ λŠ” 색에 관계 없이 인식될 수 μžˆμ–΄μ•Ό ν•œλ‹€.

  • 색약, 색맹 λ“±μ˜ 색을 μΈμ§€ν•˜λŠ”λ° 어렀움이 μžˆλŠ” μ‚¬μš©μžμ˜ 경우 μƒ‰μœΌλ‘œ κ΅¬λΆ„λ˜λŠ” μ½˜ν…μΈ λ₯Ό μ œλŒ€λ‘œ νŒŒμ•…ν•˜μ§€ λͺ»ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. μœ„ μ΄λ―Έμ§€μ—μ„œ 쒌츑이 μƒ‰μœΌλ‘œλ§Œ ꡬ뢄 된 μ½˜ν…μΈ , μš°μΈ‘μ€ 색맹인 μ‚¬μš©μžκ°€ λ³Έ μ½˜ν…μΈ μž…λ‹ˆλ‹€. 우츑의 κ²½μš°λŠ” μ½˜ν…μΈ μ˜ ꡬ뢄이 μ œλŒ€λ‘œ λ˜μ§€ μ•ŠλŠ” 것을 λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. 이럴 λ•Œ λ‹€μŒκ³Ό 같은 λ°©λ²•μœΌλ‘œ 문제λ₯Ό ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
    • μ½˜ν…μΈ μ— ν…Œλ‘λ¦¬ μ„€μ •ν•˜κΈ°
      • μ½˜ν…μΈ μ— ν…Œλ‘λ¦¬λ₯Ό μ„€μ •ν•΄μ£ΌλŠ” 것 λ§ŒμœΌλ‘œλ„ μ½˜ν…μΈ μ˜ ꡬ뢄이 λͺ…확해진 것을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.
    • μ½˜ν…μΈ μ— λ ˆμ΄λΈ” 달기
      • λ ˆμ΄λΈ”κΉŒμ§€ μΆ”κ°€ν•˜λ©΄ 색 ꡬ뢄이 λͺ…ν™•ν•˜μ§€ μ•Šμ•„λ„ λ‚΄μš©μ„ λͺ…ν™•ν•˜κ²Œ νŒŒμ•…ν•  수 μžˆλŠ” μ½˜ν…μΈ κ°€ λ©λ‹ˆλ‹€.

4. λͺ…ν™•ν•œ μ§€μ‹œμ‚¬ν•­ 제곡

: μ§€μ‹œμ‚¬ν•­μ€ λͺ¨μ–‘, 크기, μœ„μΉ˜, λ°©ν–₯, 색, μ†Œλ¦¬ 등에 관계없이 인식될 수 μžˆμ–΄μ•Ό ν•œλ‹€.

  • μ§€μ‹œμ‚¬ν•­μ΄ λ™κ·Έλž€ λ²„νŠΌ(λͺ¨μ–‘), κ°€μž₯ 큰 λ²„νŠΌ(크기), 였λ₯Έμͺ½μ— μžˆλŠ” λ²„νŠΌ(μœ„μΉ˜, λ°©ν–₯), 빨간색 λ²„νŠΌ(색) 등을 κ°€λ¦¬μΌœ μ§€μ‹œν•˜κ³  μžˆλ‹€λ©΄, μ‹œκ° μž₯μ• λ₯Ό μ§€λ‹Œ μ‚¬μš©μžλŠ” 이 μ§€μ‹œμ‚¬ν•­μ΄ μ–΄λ–€ λ²„νŠΌμ„ κ°€λ¦¬ν‚€λŠ” 것인지 μ•Œ 수 μ—†μŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ ν•΄λ‹Ή λ²„νŠΌμ„ μ„€λͺ…ν•˜λŠ” λŒ€μ²΄ ν…μŠ€νŠΈλ₯Ό μž‘μ„±ν•΄μ•Ό ν•©λ‹ˆλ‹€.
  • μ†Œλ¦¬λ₯Ό 톡해 μ§€μ‹œν•˜λŠ” 경우, 청각 μž₯μ• λ₯Ό 가진 μ‚¬μš©μžλŠ” μ§€μ‹œμ‚¬ν•­μ„ μ œλŒ€λ‘œ 인지할 수 μ—†μŠ΅λ‹ˆλ‹€. 이런 상황을 λŒ€λΉ„ν•˜μ—¬ μ‹œκ°μ  ν”Όλ“œλ°±λ„ ν•¨κ»˜ μ œκ³΅ν•΄μ•Ό ν•©λ‹ˆλ‹€.

 

5. ν…μŠ€νŠΈ μ½˜ν…μΈ  λͺ…도 λŒ€λΉ„

: ν…μŠ€νŠΈ μ½˜ν…μΈ μ™€ λ°°κ²½ κ°„μ˜ λͺ…도 λŒ€λΉ„λŠ” 4.5 λŒ€ 1 이상이어야 ν•œλ‹€.

  • λͺ…도 λŒ€λΉ„κ°€ μΆ©λΆ„νžˆ ν™•λ³΄λ˜μ§€ μ•ŠλŠ” 경우 ν…μŠ€νŠΈλ₯Ό 읽기 μ–΄λ €μš°λ―€λ‘œ κΌ­ μ§€μΌœμ•Ό ν•©λ‹ˆλ‹€.
  • λ‹€μŒ μƒν™©μ—μ„œλŠ” μ½˜ν…μΈ μ™€ λ°°κ²½ κ°„μ˜ λͺ…도 λŒ€λΉ„κ°€ 3 λŒ€ 1 κΉŒμ§€ ν—ˆμš©λ©λ‹ˆλ‹€.
    • ν…μŠ€νŠΈκ°€ 18pt λ˜λŠ” ꡡ은(Bold) 14pt 이상일 경우, ν™•λŒ€ κ°€λŠ₯ν•œ νŽ˜μ΄μ§€μΈ 경우, λΉ„ν™œμ„±ν™” 된 μ½˜ν…μΈ μΈ 경우, μž₯식 λͺ©μ μ˜ μ½˜ν…μΈ μΈ 경우

 

6. μžλ™ μž¬μƒ κΈˆμ§€

: μžλ™μœΌλ‘œ μ†Œλ¦¬κ°€ μž¬μƒλ˜μ§€ μ•Šμ•„μ•Ό ν•œλ‹€.

  • λ™μ˜μƒ, μ˜€λ””μ˜€, μŒμ„±, λ°°κ²½ μŒμ•… λ“± λͺ¨λ“  μ’…λ₯˜μ˜ μ†Œλ¦¬λ₯Ό λ§ν•©λ‹ˆλ‹€.
  • 슀크린 리더λ₯Ό μ‚¬μš©ν•˜λŠ” 경우, μžλ™μœΌλ‘œ μž¬μƒλœ μ†Œλ¦¬μ™€ 겹쳐 νŽ˜μ΄μ§€ λ‚΄μš©μ„ νŒŒμ•…ν•˜κΈ° μ–΄λ €μ›Œμ§‘λ‹ˆλ‹€.
  • λΆˆκ°€ν”Όν•˜κ²Œ μ œκ³΅ν•΄μ•Ό ν•˜λŠ” κ²½μš°μ—λŠ” λ‹€μŒκ³Ό 같이 ν•΄κ²°ν•©λ‹ˆλ‹€.
    • κ°€μž₯ λ¨Όμ € μœ„μΉ˜μ‹œμΌœ 정지할 수 있게 κ΅¬ν˜„ν•˜κΈ°
    • ESCλ₯Ό 눌러 정지
    • 3초 내에 정지

 

7. μ½˜ν…μΈ  κ°„ ꡬ뢄

: μ΄μ›ƒν•œ μ½˜ν…μΈ λŠ” ꡬ별될 수 μžˆμ–΄μ•Όν•œλ‹€.

  • μ›Ή νŽ˜μ΄μ§€λ₯Ό κ΅¬μ„±ν•˜λŠ” λͺ¨λ“  μ½˜ν…μΈ λŠ” μ‹œκ°μ μœΌλ‘œ ꡬ뢄할 수 μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.
    • ν…Œλ‘λ¦¬, ꡬ뢄선, 무늬, λͺ…λ„λŒ€λΉ„, 간격 λ“± μ‹œκ°μ μœΌλ‘œ ꡬ뢄할 수 μžˆλŠ” 방법 μ‚¬μš©

 

 


 

 

β˜‘οΈ μš΄μš©μ˜ μš©μ΄μ„±(Operable)

: μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€ κ΅¬μ„±μš”μ†ŒλŠ” μ‘°μž‘ κ°€λŠ₯ν•˜κ³  λ‚΄λΉ„κ²Œμ΄μ…˜ ν•  수 μžˆμ–΄μ•Ό ν•œλ‹€.

 

8. ν‚€λ³΄λ“œ μ‚¬μš© 보μž₯

: λͺ¨λ“  κΈ°λŠ₯은 ν‚€λ³΄λ“œλ§ŒμœΌλ‘œλ„ μ‚¬μš©ν•  수 μžˆμ–΄μ•Ό ν•œλ‹€.

  • λͺ¨λ“  μ‚¬μš©μžκ°€ 마우슀λ₯Ό μ‚¬μš©ν•  수 μžˆλŠ” 것은 μ•„λ‹™λ‹ˆλ‹€. λ”°λΌμ„œ ν‚€λ³΄λ“œλ‘œλ„ μ›Ή νŽ˜μ΄μ§€μ—μ„œ μ œκ³΅ν•˜λŠ” κΈ°λŠ₯을 μ‚¬μš©ν•  수 μžˆλ„λ‘ μ œκ³΅ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.
    • ν‚€λ³΄λ“œ μ‘°μž‘μ‹œ λΉ μ Έλ‚˜μ˜€μ§€ λͺ»ν•˜λŠ” κ²½μš°κ°€ 없도둝 μ£Όμ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€.

 

9. 초점 이동

: ν‚€λ³΄λ“œμ— μ˜ν•œ μ΄ˆμ μ€ λ…Όλ¦¬μ μœΌλ‘œ 이동해야 ν•˜λ©° μ‹œκ°μ μœΌλ‘œ ꡬ별할 수 μžˆμ–΄μ•Ό ν•œλ‹€.

  • μ΄ˆμ μ€ 일반적으둜 μ™Όμͺ½μ—μ„œ 였λ₯Έμͺ½μœΌλ‘œ, μœ„μͺ½μ—μ„œ μ•„λž˜μͺ½μœΌλ‘œ μ΄λ™ν•˜κ²Œ λ©λ‹ˆλ‹€. 슀크린 리더 μ‚¬μš©μžμ™€ ν‚€λ³΄λ“œ μ‚¬μš©μžλ„ 이 μˆœμ„œλ‘œ μ›Ή νŽ˜μ΄μ§€λ₯Ό 탐색할 수 μžˆλ„λ‘ λ§ˆν¬μ—…μ„ ꡬ성해야 ν•©λ‹ˆλ‹€.

 

10. μ‘°μž‘ κ°€λŠ₯

: μ‚¬μš©μž μž…λ ₯ 및 μ»¨νŠΈλ‘€μ€ μ‘°μž‘ κ°€λŠ₯ν•˜λ„λ‘ μ œκ³΅λ˜μ–΄μ•Ό ν•œλ‹€.

  • λ―Έμ„Έν•œ μ‘°μž‘μ΄ μ–΄λ €μš΄ μƒν™©μ—μ„œλ„ μ›ν•˜λŠ” μš”μ†Œλ₯Ό μ„ νƒν•˜μ—¬ μ‘°μž‘ν•  수 μžˆλ„λ‘ ν•΄μ•Ό ν•©λ‹ˆλ‹€.
    • 컨트둀의 λŒ€κ°μ„  κΈΈμ΄λŠ” 6mm 이상 : λ²„νŠΌ λ“± 컨트둀이 λ„ˆλ¬΄ μž‘μ€ 경우 μ œλŒ€λ‘œ μ„ νƒν•˜κΈ° νž˜λ“­λ‹ˆλ‹€.
    • 컨트둀 κ°„ 1ν”½μ…€ μ΄μƒμ˜ μ—¬λ°± : 컨트둀이 연달아 μžˆλŠ” κ²½μš°μ—λŠ” 여백을 μ£Όμ–΄ ꡬ뢄해주어야 ν•©λ‹ˆλ‹€.

 

11. 응닡 μ‹œκ°„ 쑰절

: μ‹œκ°„μ œν•œμ΄ μžˆλŠ” μ½˜ν…μΈ λŠ” μ‘λ‹΅μ‹œκ°„μ„ μ‘°μ ˆν•  수 μžˆμ–΄μ•Ό ν•œλ‹€.

  • κ°€λŠ₯ν•˜λ©΄ μ‹œκ°„ μ œν•œμ΄ μžˆλŠ” μ½˜ν…μΈ λ₯Ό 넣지 μ•ŠλŠ” 것이 μ’‹μ§€λ§Œ, κΌ­ λ„£μ–΄μ•Ό ν•˜λŠ” μƒν™©μ—μ„œλŠ” (1) μΆ©λΆ„ν•œ μ‹œκ°„, (2) μ’…λ£Œ μ•ˆλ‚΄, (3) 쑰절 μˆ˜λ‹¨μ„ μ œκ³΅ν•΄μ•Ό ν•©λ‹ˆλ‹€.
  • 은행 μ‚¬μ΄νŠΈλŠ” λ³΄μ•ˆ 문제둜 일정 μ‹œκ°„ 이후 μžλ™ λ‘œκ·Έμ•„μ›ƒμ„ μ§„ν–‰ν•©λ‹ˆλ‹€. 이 λ•Œ (1) μΆ©λΆ„ν•œ μ‹œκ°„μ„ μ œκ³΅ν•˜λ©΄μ„œ (2) μ’…λ£ŒκΉŒμ§€ 남은 μ‹œκ°„μ„ μ•Œλ €μ£Όκ³ , (3) μ‹œκ°„μ„ μ—°μž₯ν•  수 μžˆλŠ” λ²„νŠΌκ³Ό λ°”λ‘œ λ‘œκ·Έμ•„μ›ƒν•  수 μžˆλŠ” λ²„νŠΌμ„ μ œκ³΅ν•©λ‹ˆλ‹€.
  • νŽ˜μ΄μ§€λ₯Ό μžλ™ μ „ν™˜ν•˜λŠ” κ²½μš°μ—λ„ μ „ν™˜λ˜κΈ°κΉŒμ§€ μ‹œκ°„μ„ μ—°μž₯ν•˜κ±°λ‚˜ 정지할 수 μžˆλŠ” μˆ˜λ‹¨μ„ μ œκ³΅ν•΄μ•Ό ν•©λ‹ˆλ‹€. 특히 슀크린 λ¦¬λ”λ‚˜ ν‚€λ³΄λ“œ μ‚¬μš©μžλ„ 이 μˆ˜λ‹¨μ„ 인지할 수 μžˆλŠ” μΆ©λΆ„ν•œ μ‹œκ°„μ„ μ œκ³΅ν•΄μ•Ό ν•©λ‹ˆλ‹€.

 

12. 정지 κΈ°λŠ₯ 제곡

: μžλ™μœΌλ‘œ λ³€κ²½λ˜λŠ” μ½˜ν…μΈ λŠ” μ›€μ§μž„μ„ μ œμ–΄ν•  수 μžˆμ–΄μ•Ό ν•œλ‹€.

  • μžλ™ λ³€κ²½ μŠ¬λΌμ΄λ“œ (μΊλŸ¬μ…€ μŠ¬λΌμ΄λ“œ) : 이전, λ‹€μŒ, 정지 κΈ°λŠ₯을 μ œκ³΅ν•΄μ•Ό ν•˜λ©°, 정지 λ²„νŠΌμ΄ 없더라도 마우슀 ν˜Έλ²„ ν˜Ήμ€ ν‚€λ³΄λ“œ μ ‘κ·Όμ‹œμ— μ •μ§€λ˜λ„λ‘ κ΅¬ν˜„ν•΄μ•Ό ν•©λ‹ˆλ‹€.
  • μžλ™ λ³€κ²½ μ½˜ν…μΈ  : μ‹€μ‹œκ°„ 검색어와 같이 μžλ™μœΌλ‘œ λ³€κ²½λ˜λŠ” μ½˜ν…μΈ λŠ” 이전, λ‹€μŒ, 정지 κΈ°λŠ₯이 없더라도 μ ‘κ·Όν–ˆμ„ λ•Œ λͺ¨λ“  μ½˜ν…μΈ λ₯Ό 확인할 수 μžˆλ„λ‘ κ΅¬ν˜„ν•΄μ•Ό ν•©λ‹ˆλ‹€.

 

13. κΉœλΉ‘μž„κ³Ό λ²ˆμ©μž„ μ‚¬μš© μ œν•œ

: μ΄ˆλ‹Ή 3~50회 주기둜 κΉœλΉ‘μ΄κ±°λ‚˜ λ²ˆμ©μ΄λŠ” μ½˜ν…μΈ λ₯Ό μ œκ³΅ν•˜μ§€ μ•Šμ•„μ•Ό ν•œλ‹€.

  • λΆˆκ·œμΉ™μ μœΌλ‘œ κΉœλΉ‘μ΄λŠ” 화면은 λˆˆμ— ν”Όλ‘œλ₯Ό μœ λ°œν•˜κ³  μ‹¬ν•œ 경우 κ΄‘κ³Όλ―Όμ„± λ°œμž‘μ„ μΌμœΌν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€. λ§Œμ•½ 이런 μ½˜ν…μΈ λ₯Ό μ œκ³΅ν•˜κ²Œ λ˜λŠ” 경우 λ‹€μŒ 쑰건 쀑 ν•˜λ‚˜λ₯Ό μΆ©μ‘±ν•΄μ•Ό ν•©λ‹ˆλ‹€.
    • λ²ˆμ©μ΄λŠ” μ½˜ν…μΈ κ°€ μ°¨μ§€ν•˜λŠ” 면적이 전체 ν™”λ©΄μ˜ 10% λ―Έλ§Œμ΄μ–΄μ•Ό 함
    • 사전에 κ²½κ³ ν•˜κ³  쀑단할 수 μžˆλŠ” μˆ˜λ‹¨μ„ μ œκ³΅ν•΄μ•Ό 함
    • μ‹œκ°„μ„ 3초 미만으둜 μ œν•œν•΄μ•Ό 함

 

14. 반볡 μ˜μ—­ κ±΄λ„ˆλ›°κΈ°

: μ½˜ν…μΈ μ˜ λ°˜λ³΅λ˜λŠ” μ˜μ—­μ€ κ±΄λ„ˆλ›Έ 수 μžˆμ–΄μ•Ό ν•œλ‹€.

  • 슀크린 리더λ₯Ό μ‚¬μš©ν•  경우, 헀더, λ‚΄λΉ„κ²Œμ΄μ…˜ λ°” λ“± λͺ¨λ“  νŽ˜μ΄μ§€μ—μ„œ λ°˜λ³΅λ˜λŠ” μš”μ†Œλ„ λ°˜λ³΅ν•΄μ„œ 읽게 λ©λ‹ˆλ‹€. λ”°λΌμ„œ μ΄λŸ¬ν•œ μš”μ†Œλ₯Ό κ±΄λ„ˆλ›°κ³  메인 μ½˜ν…μΈ λ‘œ 이동할 수 μžˆλŠ” 방법을 μ œκ³΅ν•΄μ•Ό ν•©λ‹ˆλ‹€.
    • κ°€μž₯ μ•žμ— κ±΄λ„ˆλ›°κΈ° 링크 μ œκ³΅ν•˜κΈ°
    • 메뉴λ₯Ό ν•„μš”ν•  λ•Œλ§Œ μ—΄ 수 μžˆλ„λ‘ λ§Œλ“€κΈ°
    • κ·Έ 외에도 κ±΄λ„ˆλ›°κΈ° λͺ©μ μ„ 달성할 수 μžˆλŠ” 방법이 있으면 λ©λ‹ˆλ‹€.

 

15. 제λͺ© 제곡

: νŽ˜μ΄μ§€, ν”„λ ˆμž„, μ½˜ν…μΈ  λΈ”λ‘μ—λŠ” μ μ ˆν•œ 제λͺ©μ„ μ œκ³΅ν•΄μ•Ό ν•œλ‹€.

  • μ μ ˆν•œ 제λͺ©μ„ μ œκ³΅ν•¨μœΌλ‘œμ¨ μ›ν•˜λŠ” λ‚΄μš©μ— λΉ λ₯΄κ²Œ μ ‘κ·Όν•  수 μžˆλ„λ‘ λ„μšΈ 수 μžˆμŠ΅λ‹ˆλ‹€.
  • 특수 λ¬ΈμžλŠ” 1κ°œκΉŒμ§€λ§Œ μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€. 특히 μ‹œκ°μ  μž₯식을 λͺ©μ μœΌλ‘œ 특수 문자λ₯Ό 반볡적으둜 μ‚¬μš©ν•˜λŠ” 경우 슀크린 λ¦¬λ”μ—μ„œ λΆˆν•„μš”ν•œ μŒμ„±μ„ λ°˜λ³΅ν•΄μ„œ 좜λ ₯ν•˜κ²Œ λ˜λ―€λ‘œ 넣지 μ•Šμ•„μ•Ό ν•©λ‹ˆλ‹€.

 

16. μ μ ˆν•œ 링크 ν…μŠ€νŠΈ

: 링크 ν…μŠ€νŠΈλŠ” μš©λ„λ‚˜ λͺ©μ μ„ 이해할 수 μžˆλ„λ‘ μ œκ³΅ν•΄μ•Ό ν•œλ‹€.

  • 이미지에 링크가 κ±Έλ €μžˆλŠ” 경우 링크λ₯Ό μ„€λͺ…ν•΄μ£ΌλŠ” λŒ€μ²΄ ν…μŠ€νŠΈλ₯Ό μž‘μ„±ν•΄μ•Ό ν•©λ‹ˆλ‹€.
  • λΉ„μ–΄μžˆλŠ” 링크가 μ—†μ–΄μ•Ό ν•©λ‹ˆλ‹€.

 


 

β˜‘οΈ μ΄ν•΄μ˜ μš©μ΄μ„±(Understandable)

: μ½˜ν…μΈ λŠ” 이해할 수 μžˆμ–΄μ•Ό ν•œλ‹€.

 

17. κΈ°λ³Έ μ–Έμ–΄ ν‘œμ‹œ

: 주둜 μ‚¬μš©ν•˜λŠ” μ–Έμ–΄λ₯Ό λͺ…μ‹œν•΄μ•Ό ν•œλ‹€.

  • HTML μš”μ†Œμ— lang μ†μ„±μ„ μ‚¬μš©ν•˜μ—¬ μ œκ³΅ν•˜λ©΄ λ©λ‹ˆλ‹€.
  • <html lang="ko">
  • νŽ˜μ΄μ§€ 내에 λ‹€λ₯Έ μ–Έμ–΄κ°€ μ‘΄μž¬ν•˜λŠ” κ²½μš°μ—λŠ” ν•΄λ‹Ή μš”μ†Œμ— lang μ†μ„±μ„ ν‘œκΈ°ν•©λ‹ˆλ‹€.

 

18. μ‚¬μš©μž μš”κ΅¬μ— λ”°λ₯Έ μ‹€ν–‰

: μ‚¬μš©μžκ°€ μ˜λ„ν•˜μ§€ μ•Šμ€ κΈ°λŠ₯(μƒˆ μ°½, μ΄ˆμ μ— μ˜ν•œ λ§₯락 λ³€ν™” λ“±)은 μ‹€ν–‰λ˜μ§€ μ•Šμ•„μ•Ό ν•œλ‹€.

  • νŽ˜μ΄μ§€ μ§„μž… μ‹œμ— νŒμ—…μ΄ λœ¨μ§€ μ•Šκ²Œ ν•΄μ•Ό ν•˜λ©°, 화면을 κ°€λ¦¬λŠ” λ ˆμ΄μ–΄ μ°½(λͺ¨λ‹¬)이 μžˆλŠ” 경우, κ°€μž₯ 상단에 μ œκ³΅ν•˜μ—¬ κ°€μž₯ λ¨Όμ € μ œμ–΄ν•  수 μžˆλ„λ‘ ν•΄μ•Ό ν•©λ‹ˆλ‹€.
  • 슀크린 리더 μ‚¬μš©μžλŠ” μƒˆ 창이 떴을 λ•Œ 이λ₯Ό μΈμ§€ν•˜μ§€ λͺ»ν•˜κ³  κΈ°μ‘΄ νŽ˜μ΄μ§€λ₯Ό 계속 λ³΄κ³ μžˆλ‹€κ³  생각할 수 μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ μƒˆ μ°½μž„μ„ μ•Œλ €μ€„ 수 μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.
    • 링크 μš”μ†Œ μ•ˆμ— 보이지 μ•ŠλŠ” μš”μ†Œλ₯Ό λ„£μ–΄ μƒˆ 창에 μ ‘κ·Όν•˜κ²Œ 됨을 μ•Œλ €μ£ΌκΈ°
    • <a href="...">νŽ˜μ΄μ§€<span class="blind">μƒˆ μ°½</span></a>
    • 링크 μš”μ†Œμ— title μ†μ„±μœΌλ‘œ μƒˆ μ°½ μž‘μ„±ν•˜κΈ°
    • <a href="..." title="μƒˆ μ°½">νŽ˜μ΄μ§€</a>
    • 링크 μš”μ†Œμ— target=”_blank” μ†μ„±μ„ λ„£κΈ°
    • <a href="..." target="_blank">νŽ˜μ΄μ§€</a>

 

19. μ½˜ν…μΈ  μ„ ν˜• ꡬ쑰

: μ½˜ν…μΈ λŠ” 논리적인 μˆœμ„œλ‘œ μ œκ³΅ν•΄μ•Ό ν•œλ‹€.

  • 글은 제λͺ©, λ‚΄μš© μˆœμ„œλ‘œ μ œκ³΅λ˜λŠ” 것이 λ…Όλ¦¬μ μœΌλ‘œ λ§žμŠ΅λ‹ˆλ‹€.
    • 탭에 ν•΄λ‹Ήν•˜λŠ” λ‚΄μš©μ΄ μžˆλŠ” 경우, νƒ­ 제λͺ© λ‹€μŒμ— νƒ­ λ‚΄μš©μ΄ μ˜€λ„λ‘ λ§ˆν¬μ—…μ„ κ΅¬μ„±ν•΄μ•Όν•©λ‹ˆλ‹€.
    • 슀크린 λ¦¬λ”λŠ” λ§ˆν¬μ—… μˆœμ„œλŒ€λ‘œ λ‚΄μš©μ„ μ½μ–΄μ€€λ‹€λŠ” 것을 항상 κ³ λ €ν•΄μ£Όμ„Έμš”.
// 잘λͺ» μž‘μ„±ν•œ μ˜ˆμ‹œ : νƒ­1 -> νƒ­2 -> νƒ­1 κ΄€λ ¨ λ‚΄μš© -> νƒ­2 κ΄€λ ¨ λ‚΄μš© μˆœμ„œλ‘œ μ½μŠ΅λ‹ˆλ‹€.
<div>νƒ­1</div>
<div>νƒ­2</div>
<div>νƒ­1 κ΄€λ ¨ λ‚΄μš©</div>
<div>νƒ­2 κ΄€λ ¨ λ‚΄μš©</div>

// ν•΄κ²° 방법 : νƒ­1 -> νƒ­1 κ΄€λ ¨ λ‚΄μš© -> νƒ­2 -> νƒ­2 κ΄€λ ¨ λ‚΄μš© μˆœμ„œλ‘œ μ½μŠ΅λ‹ˆλ‹€.
<div>νƒ­1</div>
<div>νƒ­1 κ΄€λ ¨ λ‚΄μš©</div>
<div>νƒ­2</div>
<div>νƒ­2 κ΄€λ ¨ λ‚΄μš©</div>

 

20. ν‘œμ˜ ꡬ성

: ν‘œλŠ” μ΄ν•΄ν•˜κΈ° μ‰½κ²Œ ꡬ성해야 ν•œλ‹€.

  • λΉ„μž₯애인은 ν‘œλ₯Ό 보면 κ·Έ ꡬ쑰λ₯Ό 인식할 수 μžˆμ§€λ§Œ, μ‹œκ° μž₯μ• κ°€ μžˆλŠ” κ²½μš°μ—λŠ” λ‚΄μš©μ„ λ“€μœΌλ©΄μ„œ κ·Έ ꡬ쑰λ₯Ό νŒŒμ•…ν•΄μ•Όλ§Œ ν•©λ‹ˆλ‹€. λ”°λΌμ„œ λ“£κΈ°λ§Œν•΄λ„ ν‘œμ˜ ꡬ쑰, λ‚΄μš©μ„ μ΄ν•΄ν•˜κΈ° μ‰½κ²Œ ꡬ성해야 ν•©λ‹ˆλ‹€.
    • ν…Œμ΄λΈ” μš”μ†Œ μ•ˆμ— caption μš”μ†Œλ₯Ό μ‚¬μš©ν•΄μ„œ ν‘œμ— 제λͺ©μ„ μ œκ³΅ν•˜κΈ°
      • ν‘œμ˜ 제λͺ©μ„ μ œκ³΅ν•˜λŠ” κ²ƒλ§ŒμœΌλ‘œλ„ 무엇을 λ§ν•˜κ³ μžν•˜λŠ” ν‘œμΈμ§€ 미리 νŒŒμ•…ν•  수 있게 λ©λ‹ˆλ‹€. 제λͺ©κ³Ό ν•¨κ»˜ ν‘œμ˜ κ°„λ‹¨ν•œ μš”μ•½μ„ μž‘μ„±ν•΄λ„ μ’‹μŠ΅λ‹ˆλ‹€.
    • ν‘œμ˜ 셀은 제λͺ© μ…€κ³Ό 데이터 셀이 κ΅¬λΆ„λ˜λ„λ‘ ꡬ성해야 ν•©λ‹ˆλ‹€. 제λͺ© 셀은 <th>, 데이터 셀은 <td>λ₯Ό μ‚¬μš©ν•˜λ©΄ λ©λ‹ˆλ‹€.
    • ν‘œμ˜ ꡬ쑰가 λ³΅μž‘ν•  경우, μ΅œλŒ€ν•œ κ°„μ†Œν™”ν•˜κ±°λ‚˜ scope ν˜Ήμ€ id와 headers μ†μ„±μ„ μ‚¬μš©ν•˜μ—¬ μž‘μ„±ν•©λ‹ˆλ‹€.

 

21. λ ˆμ΄λΈ” 제곡

: μ‚¬μš©μž μž…λ ₯μ—λŠ” λŒ€μ‘ν•˜λŠ” λ ˆμ΄λΈ”μ„ μ œκ³΅ν•΄μ•Ό ν•œλ‹€.

  • μ‚¬μš©μžκ°€ 정보λ₯Ό μž…λ ₯ν•˜λŠ” 상황에, μ–΄λ–€ 정보λ₯Ό μž…λ ₯ν•΄μ•Ό ν•˜λŠ”μ§€ μ •ν™•ν•˜κ²Œ μ•Œ 수 μ—†μœΌλ©΄ μž…λ ₯이 λΆˆκ°€λŠ₯ν•©λ‹ˆλ‹€.
    • <input> μš”μ†Œμ— value λ‚˜ placeholder μ†μ„±λ§Œ μ„€μ •ν•˜λŠ” 것은 μ ν•©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
(X) <input type="text" placeholder="아이디" />
    • <input> μš”μ†Œμ— id λ₯Ό μ„€μ •ν•˜κ³  <label> μš”μ†Œμ˜ for μ†μ„±μœΌλ‘œ μ—°κ²°ν•΄μ€λ‹ˆλ‹€.
(O) <label for="user_id">아이디</label><input id="user_id" type="text" placeholder="아이디" />
    • title μ†μ„±μ„ μ‚¬μš©ν•©λ‹ˆλ‹€.
(O) <input type="text" title="아이디" placeholder="아이디" />
    • WAI-ARIA의 aria-label μ†μ„±μ„ μ‚¬μš©ν•©λ‹ˆλ‹€.WAI-ARIA의 경우 κΌ­ ν•„μš”ν•œ κ²½μš°κ°€ μ•„λ‹ˆλΌλ©΄ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. λ‹€λ₯Έ HTML μ†μ„±μ΄λ‚˜ μš”μ†Œλ‘œ λŒ€μ²΄ κ°€λŠ₯ν•œ κ²½μš°μ—λŠ” ν•΄λ‹Ή μ†μ„±μ΄λ‚˜ μš”μ†Œλ₯Ό μš°μ„ μ μœΌλ‘œ μ‚¬μš©ν•΄μ£Όμ„Έμš”.
(O) <input type="text" aria-label="아이디" placeholder="아이디" />

 

22. 였λ₯˜ μ •μ •

: μž…λ ₯ 였λ₯˜λ₯Ό μ •μ •ν•  수 μžˆλŠ” 방법을 μ œκ³΅ν•΄μ•Ό ν•œλ‹€.

  • μž‘μ„± 쀑, ν˜Ήμ€ 제좜 μ‹œ 였λ₯˜κ°€ λ°œμƒν–ˆμ„ λ•Œ μž…λ ₯ν–ˆλ˜ λ‚΄μš©μ΄ 사라지지 μ•Šκ³  μœ μ§€λ˜λ„λ‘ ν•΄μ•Ό ν•©λ‹ˆλ‹€.
  • 였λ₯˜κ°€ λ°œμƒν•œ 경우 μ‚¬μš©μžμ—κ²Œ 였λ₯˜ λ°œμƒ 원인을 μ•Œλ €μ€˜μ•Ό ν•©λ‹ˆλ‹€.
  • 였λ₯˜κ°€ λ°œμƒν•œ 경우 였λ₯˜κ°€ λ°œμƒν•œ μœ„μΉ˜λ‘œ 초점이 이동해야 ν•©λ‹ˆλ‹€.

 

 


 

 

β˜‘οΈ κ²¬κ³ μ„±(Robust)

: μ›Ή μ½˜ν…μΈ λŠ” 미래의 κΈ°μˆ λ‘œλ„ μ ‘κ·Όν•  수 μžˆλ„λ‘ κ²¬κ³ ν•˜κ²Œ λ§Œλ“€μ–΄μ•Ό ν•œλ‹€.

23. λ§ˆν¬μ—… 였λ₯˜ 방지

: λ§ˆν¬μ—… μ–Έμ–΄μ˜ μš”μ†ŒλŠ” μ—΄κ³  λ‹«μŒ, 쀑첩 관계 및 속성 선언에 였λ₯˜κ°€ μ—†μ–΄μ•Ό ν•œλ‹€.

  • μš”μ†Œμ˜ μ—΄κ³  λ‹«μŒμ— 였λ₯˜κ°€ μ—†μ–΄μ•Ό ν•©λ‹ˆλ‹€.
  • (X) <div><span></div></span> (O) <div><span></span></div>
  • μš”μ†Œμ˜ 속성을 μ€‘λ³΅ν•΄μ„œ μ‚¬μš©ν•΄μ„  μ•ˆ λ©λ‹ˆλ‹€.
  • (X) <div class="쀑볡" class="μ‚¬μš©"></div> (O) <div class="μ•ˆ λΌμš”"></div>
  • id λ₯Ό μ€‘λ³΅ν•΄μ„œ μ‚¬μš©ν•΄μ„  μ•ˆ λ©λ‹ˆλ‹€.
  • (X) <div id="아이디"><span id="아이디"></span></div>

24. μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ ‘κ·Όμ„± μ€€μˆ˜

: μ½˜ν…μΈ μ— ν¬ν•¨λœ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ 접근성이 μžˆμ–΄μ•Ό ν•œλ‹€.

  • μ›Ή μ½˜ν…μΈ μ— ν¬ν•¨λœ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜λ„ 접근성을 κ°–μΆ°μ•Ό ν•©λ‹ˆλ‹€. 접근성을 갖좔지 λͺ»ν•œ κ²½μš°μ—λŠ” λŒ€μ²΄ μˆ˜λ‹¨μ΄λ‚˜ λŒ€μ²΄ ν…μŠ€νŠΈλ₯Ό μ œκ³΅ν•΄μ•Ό ν•©λ‹ˆλ‹€.

 

 

 

 


WAI-ARIA

  • WAI (Web Accessibility Initiative) : μ›Ή ν‘œμ€€μ„ μ •ν•˜λŠ” W3Cμ—μ„œ μ›Ή 접근성을 λ‹΄λ‹Ήν•˜λŠ” κΈ°κ΄€
  • ARIA (Accessible Rich Internet Applications) : μž₯μ• κ°€ μžˆλŠ” μ‚¬λžŒλ“€μ΄ μ›Ή μ½˜ν…μΈ μ™€ μ›Ή μ‘μš© ν”„λ‘œκ·Έλž¨μ— 더 μ‰½κ²Œ μ•‘μ„ΈμŠ€ν•  수 μžˆλ„λ‘ ν•˜λŠ”, 즉 μ›Ή 접근성을 κ°–μΆ”κΈ° μœ„ν•œ 기술
    • RIA (Rich Internet Applications) : λ”°λ‘œ ν”„λ‘œκ·Έλž¨μ„ μ„€μΉ˜ν•˜μ§€ μ•Šμ•„λ„ μ›Ή λΈŒλΌμš°μ €λ₯Ό 톡해 μ‚¬μš©ν•  수 μžˆλŠ” νŽΈλ¦¬μ„± + ν”„λ‘œκ·Έλž¨μ„ 직접 μ„€μΉ˜ν•΄μ„œ μ‚¬μš©ν•˜λŠ” κ²ƒμ²˜λŸΌ λΉ λ₯Έ λ°˜μ‘μ˜ μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€λ₯Ό λ™μ‹œμ— κ°€μ§€λŠ” μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜. SPAλ₯Ό μ˜λ―Έν•˜λŠ” κ²½μš°κ°€ λ§Žλ‹€.

μ •λ¦¬ν•˜μžλ©΄, WAI-ARIAλŠ” WAIμ—μ„œ λ°œν‘œν•œ RIA ν™˜κ²½μ—μ„œμ˜ μ›Ή μ ‘κ·Όμ„± 기술 κ·œκ²©μž…λ‹ˆλ‹€.

WAI-ARIA의 ν•„μš”μ„±

WAI-ARIAλŠ” HTML μš”μ†Œμ— μΆ”κ°€μ μœΌλ‘œ 의미λ₯Ό λΆ€μ—¬ν•  수 있게 ν•΄μ€λ‹ˆλ‹€.

λ”°λΌμ„œ 보쑰적으둜 μ‚¬μš©ν•˜λ©΄, μ›Ή 접근성을 ν–₯μƒμ‹œν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€.

μ •λ¦¬ν•˜μžλ©΄, λ‹€μŒκ³Ό 같은 μƒν™©μ—μ„œ WAI-ARIAλ₯Ό μ‚¬μš©ν•˜λ©΄ μ›Ή 접근성을 효과적으둜 ν–₯μƒμ‹œν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€.

  1. μ‹œλ§¨ν‹± μš”μ†Œλ§ŒμœΌλ‘œ 의미λ₯Ό μΆ©λΆ„νžˆ λΆ€μ—¬ν•  수 μ—†λŠ” 상황에 WAI-ARIAλ₯Ό μ‚¬μš©ν•˜λ©΄ HTML μš”μ†Œμ— 좔가적인 의미λ₯Ό λΆ€μ—¬ν•˜μ—¬ 더 μ›ν™œν•˜κ²Œ νŽ˜μ΄μ§€λ₯Ό 탐색 ν•  수 있게 λ„μ™€μ€λ‹ˆλ‹€.
    • ‘μ‹œλ§¨ν‹± μš”μ†Œλ§ŒμœΌλ‘œ 의미λ₯Ό μΆ©λΆ„νžˆ λΆ€μ—¬ν•  수 μ—†λŠ” 상황’μ΄λΌλŠ” 것은 μ‹œλ§¨ν‹± μš”μ†Œλ§ŒμœΌλ‘œ μΆ©λΆ„ν•œ μƒν™©μ—μ„œλŠ” WAI-ARIAλ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šμ•„μ•Ό ν•œλ‹€λŠ” μ˜λ―Έμž…λ‹ˆλ‹€. WAI-ARIAλŠ” 보쑰적인 μ—­ν• λ‘œλ§Œ μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€. WAI-ARIAλ₯Ό λ‚¨μš©ν•΄μ„  μ•ˆ 되며, μ‹œλ§¨ν‹±ν•œ HTML을 μž‘μ„±ν•˜λŠ” 것이 μ΅œμš°μ„ μž…λ‹ˆλ‹€.
  2. SPA처럼 AJAXλ₯Ό μ‚¬μš©ν•˜λŠ” 상황, 즉 μƒˆλ‘œκ³ μΉ¨ 없이 νŽ˜μ΄μ§€μ˜ λ‚΄μš©μ΄ λ°”λ€ŒλŠ” μƒν™©μ—μ„œλ„ λ³€κ²½λœ μ˜μ—­μ—λŒ€ν•œ 정보λ₯Ό 전달해쀄 수 μžˆμ–΄ 동적인 μ½˜ν…μΈ μ—μ„œλ„ μ›Ή 접근성을 ν–₯μƒμ‹œν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€.

 

WAI-ARIA μ‚¬μš©λ²•

WAI-ARIAλŠ” HTML νƒœκ·Έ 내뢀에 속성(attribute)을 μΆ”κ°€ν•¨μœΌλ‘œμ¨ 의미λ₯Ό 뢀여해쀄 수 μžˆμŠ΅λ‹ˆλ‹€.

WAI-ARIA의 μ†μ„±μ—λŠ” 크게 μ„Έ 가지 λΆ„λ₯˜κ°€ μžˆμŠ΅λ‹ˆλ‹€.

  • μ—­ν• (role) : HTML μš”μ†Œμ˜ 역할을 μ •μ˜ν•˜λŠ” 속성
  • μƒνƒœ(state) : μš”μ†Œμ˜ ν˜„μž¬ μƒνƒœλ₯Ό λ‚˜νƒ€λ‚΄λŠ” 속성
  • 속성(property) : μš”μ†Œμ˜ νŠΉμ§•μ„ μ •μ˜ν•˜λŠ” 속성(attribute)

 

 

1. μ—­ν• (Role)

HTML의 μš”μ†Œ μ’…λ₯˜μ™€ 역할이 μ„œλ‘œ λ§žμ§€ μ•Šμ„ λ•Œ, μ–΄λ–€ 역할을 ν•˜λŠ” μš”μ†ŒμΈμ§€ λͺ…μ‹œν•΄μ€„ λ•Œ μ‚¬μš©ν•  수 μžˆλŠ” 속성(attribute)μž…λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, λ²„νŠΌμœΌλ‘œ μ‚¬μš©λ˜λŠ” μš”μ†Œλ₯Ό λ§Œλ“€μ—ˆλŠ”λ° <div> μš”μ†Œλ₯Ό μ‚¬μš©ν–ˆλ‹€λ©΄, 이 μš”μ†Œκ°€ λ²„νŠΌ 역할을 ν•˜κ³  μžˆμŒμ„ λ‹€μŒκ³Ό 같이 ν‘œμ‹œν•΄μ€„ 수 μžˆμŠ΅λ‹ˆλ‹€.

<div role="button">divμ΄μ§€λ§Œ button으둜 μ‚¬μš©λ˜λŠ” μš”μ†Œ</div>

μ£Όμ˜ν•  점은, HTML μš”μ†Œλ‘œ μΆ©λΆ„νžˆ νŒŒμ•…ν•  수 μžˆλŠ” λ‚΄μš©μ„ WAI-ARIA둜 또 μ„€λͺ…해쀄 ν•„μš”λŠ” μ—†μŠ΅λ‹ˆλ‹€.

// WAI-ARIA의 잘λͺ»λœ μ‚¬μš© μ˜ˆμ‹œ
<button role="button">button인 μš”μ†Œ</button>

λ˜ν•œ, μ‹œλ§¨ν‹± μš”μ†Œ λ³Έμ—°μ˜ 의미λ₯Ό μž„μ˜λ‘œ 바꾸지 μ•Šμ•„μ•Ό ν•©λ‹ˆλ‹€.

// WAI-ARIA의 잘λͺ»λœ μ‚¬μš© μ˜ˆμ‹œ
<h1 role="button">h1인 μš”μ†Œ</h1>

μš°λ¦¬λŠ” 화면을 보기만 해도 각 탭을 λˆ„λ₯΄λ©΄ 화면이 λ°”λ€ŒλŠ” νƒ­ μ»΄ν¬λ„ŒνŠΈλΌλŠ” 것을 μ•Œ 수 μžˆμ§€λ§Œ, HTML μš”μ†Œμ˜ ꡬ쑰만으둜 화면을 νŒŒμ•…ν•  수 μžˆλŠ” μ‚¬μš©μžλŠ” μ–΄λ–¨κΉŒμš”? μ•„λž˜μ˜ HTML μ½”λ“œλ§Œ λ³΄κ³ μ„œ 이 μš”μ†Œλ“€μ΄ μ–΄λ–€ κΈ°λŠ₯을 ν•˜λŠ”μ§€ νŒŒμ•…ν•  수 μžˆμ„κΉŒμš”? μ•„λ§ˆ λΆˆκ°€λŠ₯ν•  κ²ƒμž…λ‹ˆλ‹€.

// μ»΄ν¬λ„ŒνŠΈ ꡬ쑰λ₯Ό κ°„μ†Œν™”ν•œ λͺ¨μŠ΅μž…λ‹ˆλ‹€.
<div>
  <li>Tab1</li>
  <li>Tab2</li>
  <li>Tab3</li>
</div>

<div>Tab menu ONE</div>
<div>Tab menu TWO</div>
<div>Tab menu THREE</div>

이럴 λ•Œ, WAI-ARIAλ₯Ό μ‚¬μš©ν•΄μ„œ 이 ꡬ쑰가 νƒ­μ˜ 역할을 ν•˜κ³  μžˆμŒμ„ λ‹€μŒκ³Ό 같이 ν‘œμ‹œν•΄μ€„ 수 μžˆμŠ΅λ‹ˆλ‹€.

<div role="tabList">
  <li role="tab">Tab1</li>
  <li role="tab">Tab2</li>
  <li role="tab">Tab3</li>
</div>

<div role="tabpanel">Tab menu ONE</div>
<div role="tabpanel">Tab menu TWO</div>
<div role="tabpanel">Tab menu THREE</div>

 

2. μƒνƒœ(State)

  • aria-selected

Tab μ»΄ν¬λ„ŒνŠΈ μ˜ˆμ‹œμ—μ„œ, role μ†μ„±μ„ μΆ”κ°€ν•˜μ—¬ ν•΄λ‹Ή μš”μ†Œμ˜ 역할을 λͺ…μ‹œν•΄λ³΄μ•˜μŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ Tab μ»΄ν¬λ„ŒνŠΈμ—μ„œ ν•„μš”ν•œ μ •λ³΄λŠ” 이것 λΏμΈκ°€μš”? μ•„λ‹™λ‹ˆλ‹€. ν˜„μž¬ μ–΄λ–€ 탭이 μ„ νƒλ˜μ–΄ μžˆλŠ”μ§€λ„ μ•Œ 수 μžˆμ–΄μ•Ό ν•˜μ£ . 이럴 λ•Œ μ‚¬μš©ν•˜λŠ” 속성이 λ°”λ‘œ μ—¬λŸ¬ 개의 선택 κ°€λŠ₯ν•œ μš”μ†Œμ€‘μ—μ„œ 선택 μƒνƒœμΈ μš”μ†Œλ₯Ό ν‘œμ‹œν•  수 μžˆλŠ” aria-selected λΌλŠ” μ†μ„±μž…λ‹ˆλ‹€. ν•΄λ‹Ή 속성을 μ μš©ν•˜λ©΄ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

<div role="tabList">
  <li role="tab" aria-selected="true">Tab1</li>
  <li role="tab" aria-selected="false">Tab2</li>
  <li role="tab" aria-selected="false">Tab3</li>
</div>

<div role="tabpanel">Tab menu ONE</div>
<div role="tabpanel">Tab menu TWO</div>
<div role="tabpanel">Tab menu THREE</div>

이제 3개의 νƒ­ μ€‘μ—μ„œ 첫 번째 탭이 μ„ νƒλœ μƒνƒœμž„μ„ μ•Œ 수 있게 λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

이 외에도 μ•„μ½”λ””μ–Έ UIκ°€ νŽΌμ³μ§„ μƒνƒœμΈμ§€ ν‘œμ‹œν•΄μ£ΌλŠ” aria-expanded, μš”μ†Œκ°€ μˆ¨κΉ€ μƒνƒœμΈμ§€λ₯Ό ν‘œμ‹œν•˜λŠ” aria-hiddenλ“±μ˜ 속성이 μžˆμŠ΅λ‹ˆλ‹€.

 

3. 속성(Property)

  • aria-label

ν…μŠ€νŠΈ μ½˜ν…μΈ  없이 μ΄λ―Έμ§€λ‘œλ§Œ λ§Œλ“€μ–΄μ§„ λ²„νŠΌμ΄ λŒ€ν‘œμ μΈ μ˜ˆμ‹œμž…λ‹ˆλ‹€.

μœ„ μ΄λ―Έμ§€λŠ” MDN의 검색 κΈ°λŠ₯ μ»΄ν¬λ„ŒνŠΈμž…λ‹ˆλ‹€.

돋보기 λͺ¨μ–‘μ˜ 검색 λ²„νŠΌ, X자 λͺ¨μ–‘μ˜ λ‹«κΈ° λ²„νŠΌμ΄ λ³΄μ΄λŠ”λ° μ΄λ ‡κ²Œ μ΄λ―Έμ§€λ§Œ λ“€μ–΄μžˆλŠ” λ²„νŠΌμ˜ 경우 HTML μš”μ†Œμ˜ ꡬ쑰만으둜 μ–΄λ–€ 역할을 ν•˜λŠ” λ²„νŠΌμΈμ§€ νŒŒμ•…ν•˜κΈ° νž˜λ“€λ‹€.

<button> <img src="X.png" /> </button>
<button> <img src="돋보기.png" /> </button>

λ¬Όλ‘  λ²„νŠΌ μš”μ†Œμ— μˆ¨κ²¨μ§„ μžμ‹ μš”μ†Œλ₯Ό μΆ”κ°€ν•΄μ„œ μ–΄λ–€ 역할을 ν•˜λŠ”μ§€ μ„€λͺ…ν•˜λŠ” λ‚΄μš©μ„ 좔가해쀄 수 도 μžˆμ§€λ§Œ, 이럴 λ•Œ μ‚¬μš©ν•  수 μžˆλŠ” WAI-ARIA 속성도 μžˆμŠ΅λ‹ˆλ‹€.

λ°”λ‘œ aria-label μž…λ‹ˆλ‹€.

 aria-label μ€ 말 κ·ΈλŒ€λ‘œ μš”μ†Œμ— 라벨을 λΆ™μ—¬μ£ΌλŠ” κΈ°λŠ₯을 ν•©λ‹ˆλ‹€. ν•΄λ‹Ή μš”μ†Œλ₯Ό μ‚¬μš©ν•˜λ©΄ λ‹€μŒκ³Ό 같이 의미λ₯Ό 뢀여해쀄 수 μžˆμŠ΅λ‹ˆλ‹€.

<button aria-label="λ‹«κΈ°"/> <img src="X.png" /> </button>
<button aria-label="검색"/> <img src="돋보기.png" /> </button>
  • aria-live

aria-live μ†μ„±μ€ ν•΄λ‹Ή μš”μ†Œκ°€ μ‹€μ‹œκ°„μœΌλ‘œ λ‚΄μš©μ„ κ°±μ‹ ν•˜λŠ” μ˜μ—­μΈμ§€ ν‘œμ‹œν•©λ‹ˆλ‹€.

즉, λΈŒλΌμš°μ§• 도쀑에 λ‚΄μš©μ„ λ„μš°λŠ” alert, modal, dialog μ™€ 같은 역할을 ν•˜λŠ” μš”μ†Œμ΄κ±°λ‚˜, AJAX κΈ°μˆ μ„ μ‚¬μš©ν•˜μ—¬ μ‹€μ‹œκ°„μœΌλ‘œ λ‚΄μš©μ„ κ°±μ‹ ν•˜λŠ” μ˜μ—­μ— μ‚¬μš©ν•˜λŠ” μ†μ„±μž…λ‹ˆλ‹€.

μ‹œκ° μž₯애인듀은 ν™”λ©΄μ˜ 동적인 μš”μ†Œλ₯Ό μ•Œμ•„μ±„κΈ° μ–΄λ ΅κΈ° λ•Œλ¬Έμ—, 이 속성을 μ‚¬μš©ν•΄μ„œ μ‹€μ‹œκ°„μœΌλ‘œ κ°±μ‹ λ˜λŠ” λ‚΄μš©μ„ μ•Œλ €μ£Όλ©΄ 큰 도움이 λ©λ‹ˆλ‹€.

속성 κ°’μœΌλ‘œλŠ” polite, assertive, off(default)κ°€ μžˆμŠ΅λ‹ˆλ‹€.

  1. polite : 슀크린 리더가 ν˜„μž¬ μ½κ³ μžˆλŠ” λ‚΄μš©μ„ λͺ¨λ‘ μ½κ³ λ‚˜μ„œ κ°±μ‹ λœ λ‚΄μš©μ„ μ‚¬μš©μžμ—κ²Œ μ „λ‹¬ν•©λ‹ˆλ‹€.
  2. assertive : 슀크린 리더가 ν˜„μž¬ μ½κ³ μžˆλŠ” λ‚΄μš©μ„ μ€‘λ‹¨ν•˜κ³  κ°±μ‹ λœ λ‚΄μš©μ„ λ°”λ‘œ μ‚¬μš©μžμ—κ²Œ μ „λ‹¬ν•©λ‹ˆλ‹€.

 

 

 

 

  •  

'Codeκ°œλ°œμΌμ§€' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

HTTP/HTTPS  (0) 2023.01.07
λ„€νŠΈμ›Œν¬[TCP/UDP, OSI 7]  (0) 2023.01.06
μ›Ή ν‘œμ€€, SE  (0) 2022.12.30
[Redux] Cmarket Redux  (0) 2022.12.30
[Redux] Store, Reducer, Action, Dispatch // Hooks : useDispatch, useSelector  (0) 2022.12.29