Skip to content
Sehwan edited this page Jun 29, 2025 · 14 revisions

์›น ์ ‘๊ทผ์„ฑ ์ฒดํฌ

1. ์ƒ‰์ƒ ๊ด€๋ จ ์ ‘๊ทผ์„ฑ ์ฒดํฌ

1.1 ์ „๊ฒฝ์ƒ‰๊ณผ ๋ฐฐ๊ฒฝ์ƒ‰ ๊ฐ„์˜ ์ƒ‰์ƒ ๋Œ€๋น„ ์ฒดํฌ

  • ์ „๊ฒฝ์ƒ‰๊ณผ ๋ฐฐ๊ฒฝ์ƒ‰์˜ ์นผ๋ผ ์ฝ”๋“œ๋ฅผ Contrast checker์— ์ž…๋ ฅํ•˜๊ณ  ์ ‘๊ทผ์„ฑ ๋ฃฐ์„ ๋‹ค ํ†ต๊ณผํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. image

์›น ์ ‘๊ทผ์„ฑ ์ •์ฑ…

์ด ์œ„ํ‚ค ๋ฌธ์„œ๋Š” "ํ•œ๊ตญํ˜• ์›น ์ฝ˜ํ…์ธ  ์ ‘๊ทผ์„ฑ ์ง€์นจ 2.2"๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ Daleui ๋””์ž์ธ ์‹œ์Šคํ…œ์„ ์„ค๊ณ„ํ•˜๊ณ  ๊ฒ€ํ† ํ•  ๋•Œ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ ‘๊ทผ์„ฑ ์ฒดํฌ๋ฆฌ์ŠคํŠธ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  UI ์ปดํฌ๋„ŒํŠธ, ์ฝ˜ํ…์ธ , ์ƒํ˜ธ์ž‘์šฉ ์š”์†Œ๊ฐ€ ์žฅ์• ์ธ ๋ฐ ๋น„์žฅ์• ์ธ ๋ชจ๋‘์—๊ฒŒ ๋™๋“ฑํ•œ ์ ‘๊ทผ์„ฑ์„ ์ œ๊ณตํ•˜๋„๋ก ๋ณด์žฅํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

1. ์ธ์‹์˜ ์šฉ์ด์„ฑ (Perceivable)

์‚ฌ์šฉ์ž๊ฐ€ ์ฝ˜ํ…์ธ ๋ฅผ ์ธ์ง€ํ•  ์ˆ˜ ์žˆ๋„๋ก ์‹œ๊ฐ, ์ฒญ๊ฐ, ์ด‰๊ฐ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ฐ๊ฐ์„ ๊ณ ๋ คํ•œ ์„ค๊ณ„.

1.1 ํ…์ŠคํŠธ ๋Œ€์ฒด ์ œ๊ณต

  • ๋ชจ๋“  ๋น„ํ…์ŠคํŠธ ์ฝ˜ํ…์ธ (์ด๋ฏธ์ง€, ์•„์ด์ฝ˜ ๋“ฑ)์— ์ ์ ˆํ•œ ๋Œ€์ฒด ํ…์ŠคํŠธ(alt text)๋ฅผ ์ œ๊ณตํ–ˆ๋Š”๊ฐ€? 1.1.1 Non-text Content (A)
  • ๋Œ€์ฒด ํ…์ŠคํŠธ๋Š” ์ฝ˜ํ…์ธ ์˜ ๋ชฉ์ ๊ณผ ๊ธฐ๋Šฅ์„ ๋ช…ํ™•ํžˆ ์„ค๋ช…ํ•˜๋Š”๊ฐ€?

1.2 ์ ์‘ ๊ฐ€๋Šฅ์„ฑ

  • ์ฝ˜ํ…์ธ ๊ฐ€ ์„ ํ˜• ๊ตฌ์กฐ๋กœ ์ œ๊ณต๋˜์–ด ์Šคํฌ๋ฆฐ ๋ฆฌ๋”๋กœ ์ดํ•ด ๊ฐ€๋Šฅํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ๋Š”๊ฐ€? 1.3.1 Info and Relationships (A)
    • Do: HTML ๋งˆํฌ์—… ์ˆœ์„œ๋ฅผ ๋…ผ๋ฆฌ์  ํ๋ฆ„(์ œ๋ชฉ โ†’ ๋ณธ๋ฌธ โ†’ ๊ด€๋ จ ๋งํฌ ๋“ฑ)์— ๋งž๊ฒŒ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. <h1>~<h6>, <p>, <ul>, <ol>, <nav>, <main> ๋“ฑ ์‹œ๋งจํ‹ฑ ํƒœ๊ทธ๋ฅผ ์ ์ ˆํžˆ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • Don't: ์‹œ๊ฐ์ ์ธ ๋ฐฐ์น˜๋งŒ์„ ์œ„ํ•ด CSS position: absolute;๋‚˜ float๋ฅผ ๋‚จ์šฉํ•˜์—ฌ DOM ์ˆœ์„œ์™€ ์‹œ๊ฐ์  ์ˆœ์„œ๊ฐ€ ์™„์ „ํžˆ ๋‹ค๋ฅด๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. (์˜ˆ: ์‹œ๊ฐ์ ์œผ๋กœ๋Š” ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ์‚ฌ์ด๋“œ๋ฐ”๊ฐ€ DOM์—์„œ๋Š” ๋ฉ”์ธ ์ฝ˜ํ…์ธ ๋ณด๋‹ค ๋จผ์ € ๋‚˜์˜ค๋Š” ๊ฒฝ์šฐ)
  • ์‹œ๊ฐ์  ์ˆœ์„œ์™€ ๋…ผ๋ฆฌ์  ์ˆœ์„œ๊ฐ€ ์ผ์น˜ํ•˜๋Š”๊ฐ€? 1.3.2 Meaningful Sequence (A)
    • Do: ๋˜๋„๋ก ์ฝ˜ํ…์ธ ์˜ ๋…ผ๋ฆฌ์  ์ˆœ์„œ(DOM ์ˆœ์„œ)๊ฐ€ ์‹œ๊ฐ์  ์ฝ๊ธฐ ์ˆœ์„œ์™€ ์ผ์น˜ํ•˜๋„๋ก ๋งˆํฌ์—…ํ•ฉ๋‹ˆ๋‹ค. Flexbox๋‚˜ Grid์˜ order ์†์„ฑ์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, ํ‚ค๋ณด๋“œ ํƒ์ƒ‰ ์ˆœ์„œ(Tab ํ‚ค)๊ฐ€ ์—ฌ์ „ํžˆ ๋…ผ๋ฆฌ์ ์ธ์ง€ ๋ฐ˜๋“œ์‹œ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
    • Don't: CSS Grid๋‚˜ Flexbox์˜ order ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ญ๋ชฉ๋“ค์˜ ์‹œ๊ฐ์  ์ˆœ์„œ๋ฅผ ๋ณ€๊ฒฝํ–ˆ์œผ๋‚˜, ํ‚ค๋ณด๋“œ๋กœ ํƒ์ƒ‰ํ•  ๋•Œ๋Š” ์›๋ž˜ DOM ์ˆœ์„œ๋Œ€๋กœ ์ด๋™ํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ํ˜ผ๋ž€์„ ๊ฒช๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. (์˜ˆ: ์‹œ๊ฐ์ ์œผ๋กœ 1, 2, 3 ๋ฒ„ํŠผ์ด ์žˆ์ง€๋งŒ Tab ํ‚ค๋กœ๋Š” 3, 1, 2 ์ˆœ์„œ๋กœ ํฌ์ปค์Šค๊ฐ€ ์ด๋™ํ•˜๋Š” ๊ฒฝ์šฐ)
  • ๋ฐ˜์‘ํ˜• ๋””์ž์ธ์—์„œ ์ฝ˜ํ…์ธ ๊ฐ€ ์†์‹ค ์—†์ด ๋ชจ๋“  ๋””๋ฐ”์ด์Šค์—์„œ ํ‘œ์‹œ๋˜๋Š”๊ฐ€? 1.3.4 Orientation (AA)
  • ์ž…๋ ฅ ํ•„๋“œ์˜ ๋ชฉ์ ์„ ๋ช…์‹œํ–ˆ๋Š”๊ฐ€? 1.3.5 Identify Input Purpose (AA)
    • Do: ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ์š”๊ตฌํ•˜๋Š” ์ž…๋ ฅ ํ•„๋“œ(์ด๋ฆ„, ์ด๋ฉ”์ผ, ์ฃผ์†Œ, ์ „ํ™”๋ฒˆํ˜ธ ๋“ฑ)์— autocomplete ์†์„ฑ์„ ์ ์ ˆํ•œ ๊ฐ’๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. (์˜ˆ: <input type="email" autocomplete="email" name="user_email">)
    • Don't: ์ด๋ฆ„, ์ด๋ฉ”์ผ, ์ฃผ์†Œ ๋“ฑ ์ž๋™ ์™„์„ฑ ๊ธฐ๋Šฅ์ด ์œ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ•„๋“œ์— autocomplete ์†์„ฑ์„ ์ œ๊ณตํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ autocomplete="off"๋ฅผ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

1.3 ๊ตฌ๋ณ„ ๊ฐ€๋Šฅ์„ฑ

  • ํ…์ŠคํŠธ์™€ ๋ฐฐ๊ฒฝ ๊ฐ„ ๋ช…๋„ ๋Œ€๋น„๊ฐ€ ์ตœ์†Œ 4.5:1(A) ๋˜๋Š” 3:1(AA) ์ด์ƒ์ธ๊ฐ€? 1.4.3 Contrast (Minimum) (AA)
  • ํ…์ŠคํŠธ ํฌ๊ธฐ๋ฅผ 200%๊นŒ์ง€ ํ™•๋Œ€ํ•ด๋„ ์ฝ˜ํ…์ธ ๊ฐ€ ์†์‹ค๋˜์ง€ ์•Š๋Š”๊ฐ€? 1.4.4 Resize Text (AA)
  • ์ด๋ฏธ์ง€๋กœ ๋œ ํ…์ŠคํŠธ ๋Œ€์‹  ์‹ค์ œ ํ…์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ–ˆ๋Š”๊ฐ€? 1.4.5 Images of Text (AA)
  • ์ƒ‰์ƒ๋งŒ์œผ๋กœ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜์ง€ ์•Š์•˜๋Š”๊ฐ€? 1.4.1 Use of Color (A)
    • Do: ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ ์ž…๋ ฅ ํ•„๋“œ๋ฅผ ๋นจ๊ฐ„์ƒ‰ ํ…Œ๋‘๋ฆฌ๋กœ ํ‘œ์‹œํ•จ๊ณผ ๋™์‹œ์—, ์˜ค๋ฅ˜ ์•„์ด์ฝ˜(โ—)๊ณผ ํ•จ๊ป˜ "ํ•„์ˆ˜ ์ž…๋ ฅ ํ•ญ๋ชฉ์ž…๋‹ˆ๋‹ค." ๊ฐ™์€ ํ…์ŠคํŠธ ๋ฉ”์‹œ์ง€๋ฅผ ํ•จ๊ป˜ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋งํฌ ํ…์ŠคํŠธ์—๋Š” ์ƒ‰์ƒ๊ณผ ํ•จ๊ป˜ ๋ฐ‘์ค„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • Don't: ํ•„์ˆ˜ ์ž…๋ ฅ ํ•„๋“œ์ž„์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ๋ ˆ์ด๋ธ” ํ…์ŠคํŠธ ์ƒ‰์ƒ๋งŒ ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋ฅ˜ ์ƒํƒœ๋ฅผ ์ž…๋ ฅ ํ•„๋“œ ํ…Œ๋‘๋ฆฌ ์ƒ‰์ƒ๋งŒ ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ๋ฐ”๊พธ์–ด ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

2. ์šด์šฉ์˜ ์šฉ์ด์„ฑ (Operable)

์‚ฌ์šฉ์ž๊ฐ€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‰ฝ๊ฒŒ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„.

2.1 ํ‚ค๋ณด๋“œ ์ ‘๊ทผ์„ฑ

  • ๋ชจ๋“  ๊ธฐ๋Šฅ์ด ํ‚ค๋ณด๋“œ๋กœ๋งŒ ์กฐ์ž‘ ๊ฐ€๋Šฅํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ๋Š”๊ฐ€? 2.1.1 Keyboard (A)
    • Do: ์ปค์Šคํ…€ ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด๋ฅผ ๋งŒ๋“ค ๋•Œ, ๋ฒ„ํŠผ์€ Tab์œผ๋กœ ํฌ์ปค์Šค ๊ฐ€๋Šฅํ•˜๊ณ  Enter๋‚˜ Space๋กœ ์—ด ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฉ”๋‰ด ํ•ญ๋ชฉ๋“ค์€ ํ™”์‚ดํ‘œ ํ‚ค(โ†‘, โ†“)๋กœ ์ด๋™ํ•˜๊ณ  Enter๋กœ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์Šฌ๋ผ์ด๋”๋Š” ํ™”์‚ดํ‘œ ํ‚ค(โ†, โ†’)๋กœ ๊ฐ’์„ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ์š”์†Œ์— tabindex="0" (ํ•„์š”์‹œ) ๋˜๋Š” ๋„ค์ดํ‹ฐ๋ธŒ ์š”์†Œ(<button>, <a>)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • Don't: ๋งˆ์šฐ์Šค ํด๋ฆญ์œผ๋กœ๋งŒ ์—ด๊ณ  ๋‹ซ์„ ์ˆ˜ ์žˆ๋Š” ์ปค์Šคํ…€ ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. Drag & Drop ์ธํ„ฐํŽ˜์ด์Šค์— ํ‚ค๋ณด๋“œ ๋Œ€์ฒด ์ˆ˜๋‹จ(์˜ˆ: '์œ„๋กœ ์ด๋™' ๋ฒ„ํŠผ)์„ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ํ‚ค๋ณด๋“œ ํฌ์ปค์Šค๊ฐ€ ๊ฐ‡ํžˆ๋Š” ์ƒํ™ฉ(Keyboard Trap)์ด ์—†๋Š”๊ฐ€? 2.1.2 No Keyboard Trap (A)
  • ํ‚ค๋ณด๋“œ ๋‹จ์ถ•ํ‚ค๊ฐ€ ์‚ฌ์šฉ์ž ๋งž์ถคํ˜•์œผ๋กœ ์กฐ์ • ๊ฐ€๋Šฅํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™” ๊ฐ€๋Šฅํ•˜๋„๋ก ํ–ˆ๋Š”๊ฐ€? 2.1.4 Character Key Shortcuts (A)

2.2 ์ถฉ๋ถ„ํ•œ ์‹œ๊ฐ„ ์ œ๊ณต

  • ์‹œ๊ฐ„ ์ œํ•œ์ด ์žˆ๋Š” ์ฝ˜ํ…์ธ ์— ๋Œ€ํ•ด ์‚ฌ์šฉ์ž์—๊ฒŒ ์ถฉ๋ถ„ํ•œ ์‹œ๊ฐ„์„ ์ œ๊ณตํ–ˆ๋Š”๊ฐ€? 2.2.1 Timing Adjustable (A)
  • ์›€์ง์ด๋Š” ์ฝ˜ํ…์ธ ๋ฅผ ์ผ์‹œ ์ •์ง€, ์ค‘์ง€, ์ˆจ๊ธธ ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋‹จ์„ ์ œ๊ณตํ–ˆ๋Š”๊ฐ€? 2.2.2 Pause, Stop, Hide (A)
  • ์ค‘๋‹จ(Interruptions)์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ํ–ˆ๊ฑฐ๋‚˜, ์‚ฌ์šฉ์ž ๋™์˜ ์—†์ด ์ค‘๋‹จ๋˜์ง€ ์•Š๋Š”๊ฐ€? 2.2.4 Interruptions (AAA) (WCAG 2.2)
  • ํƒ€์ž„์•„์›ƒ์œผ๋กœ ๋ฐ์ดํ„ฐ ์†์‹ค์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ๊ฒฝ๊ณ ๋ฅผ ์ œ๊ณตํ–ˆ๋Š”๊ฐ€? 2.2.6 Timeouts (AAA) (WCAG 2.2)

2.3 ๊ด‘๊ณผ๋ฏผ์„ฑ ๋ฐœ์ž‘ ์œ ๋ฐœ ๋ฐฉ์ง€

  • 1์ดˆ์— 3ํšŒ ์ด์ƒ ๊นœ๋นก์ด๋Š” ์ฝ˜ํ…์ธ ๊ฐ€ ์—†๊ฑฐ๋‚˜, ์ž„๊ณ„๊ฐ’ ์ดํ•˜๋กœ ์ œํ•œํ–ˆ๋Š”๊ฐ€? 2.3.1 Three Flashes or Below Threshold (A)
  • ์ƒํ˜ธ์ž‘์šฉ์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์‚ฌ์šฉ์ž๊ฐ€ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€? 2.3.3 Animation from Interactions (AAA) (WCAG 2.2)

2.4 ํƒ์ƒ‰ ๊ฐ€๋Šฅ์„ฑ

  • ๋ฐ˜๋ณต ์ฝ˜ํ…์ธ ๋ฅผ ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ๋Š” "Skip Navigation" ๋งํฌ๋ฅผ ์ œ๊ณตํ–ˆ๋Š”๊ฐ€? 2.4.1 Bypass Blocks (A)
  • ํŽ˜์ด์ง€ ์ œ๋ชฉ์ด ๊ณ ์œ ํ•˜๊ณ  ์„ค๋ช…์ ์ธ๊ฐ€? 2.4.2 Page Titled (A)
    • Do: ํŽ˜์ด์ง€์˜ ์ฃผ์š” ๋‚ด์šฉ์„ ๋ช…ํ™•ํžˆ ์•Œ ์ˆ˜ ์žˆ๋Š” ์ œ๋ชฉ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. (์˜ˆ: <title>์žฅ๋ฐ”๊ตฌ๋‹ˆ - Daleui ์Šคํ† ์–ด</title>, <title>์›น ์ ‘๊ทผ์„ฑ ์ฒดํฌ๋ฆฌ์ŠคํŠธ | Daleui ๋””์ž์ธ ์‹œ์Šคํ…œ</title>)
    • Don't: ๋ชจ๋“  ํŽ˜์ด์ง€์˜ ์ œ๋ชฉ์„ <title>Daleui</title> ๋˜๋Š” <title>๋ฉ”์ธ ํŽ˜์ด์ง€</title>์™€ ๊ฐ™์ด ๋™์ผํ•˜๊ฑฐ๋‚˜ ๋ชจํ˜ธํ•˜๊ฒŒ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ํฌ์ปค์Šค ์ˆœ์„œ๊ฐ€ ๋…ผ๋ฆฌ์ ์ด๊ณ  ์ง๊ด€์ ์ธ๊ฐ€? 2.4.3 Focus Order (A)
    • Do: Tab ํ‚ค๋ฅผ ๋ˆŒ๋ €์„ ๋•Œ, ํŽ˜์ด์ง€์˜ ์‹œ๊ฐ์  ํ๋ฆ„(๋ณดํ†ต ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ, ์œ„์—์„œ ์•„๋ž˜)์„ ๋”ฐ๋ผ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜๊ฒŒ ํฌ์ปค์Šค๊ฐ€ ์ด๋™ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋‹ฌ ์ฐฝ์„ ๋‹ซ์œผ๋ฉด, ๋ชจ๋‹ฌ์„ ์—ด์—ˆ๋˜ ๋ฒ„ํŠผ์ด๋‚˜ ๋งํฌ๋กœ ํฌ์ปค์Šค๊ฐ€ ๋Œ์•„๊ฐ€๋„๋ก ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
    • Don't: Tab ํ‚ค๋ฅผ ๋ˆ„๋ฅผ ๋•Œ ํฌ์ปค์Šค๊ฐ€ ํŽ˜์ด์ง€ ์ƒ๋‹จ ํ—ค๋” โ†’ ๋ณธ๋ฌธ ์ค‘๊ฐ„ โ†’ ํ‘ธํ„ฐ โ†’ ๋‹ค์‹œ ํ—ค๋”์˜ ๋‹ค๋ฅธ ์š”์†Œ ๋“ฑ์œผ๋กœ ์˜ˆ์ธก ๋ถˆ๊ฐ€๋Šฅํ•˜๊ฒŒ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋‹ฌ ์ฐฝ์„ ๋‹ซ์•˜๋Š”๋ฐ ํฌ์ปค์Šค๊ฐ€ ํŽ˜์ด์ง€์˜ ๋งจ ์ฒ˜์Œ์œผ๋กœ ์ด๋™ํ•˜๊ฑฐ๋‚˜ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค.
  • ๋งํฌ์˜ ๋ชฉ์ ์ด ๋ฌธ๋งฅ์—์„œ ๋ช…ํ™•ํ•œ๊ฐ€? 2.4.4 Link Purpose (In Context) (A)
  • ๋‹ค์ค‘ ํƒ์ƒ‰ ๋ฐฉ๋ฒ•(์‚ฌ์ดํŠธ๋งต, ๊ฒ€์ƒ‰ ๋“ฑ)์„ ์ œ๊ณตํ–ˆ๋Š”๊ฐ€? 2.4.5 Multiple Ways (AA)
  • ์ œ๋ชฉ๊ณผ ๋ ˆ์ด๋ธ”์ด ๋ช…ํ™•ํ•˜๊ณ  ์ผ๊ด€์ ์ธ๊ฐ€? 2.4.6 Headings and Labels (AA)
    • Do: ํŽ˜์ด์ง€ ๊ตฌ์กฐ์— ๋งž๊ฒŒ <h1>๋ถ€ํ„ฐ <h6>๊นŒ์ง€ ์ œ๋ชฉ(Heading) ํƒœ๊ทธ๋ฅผ ๋…ผ๋ฆฌ์ ์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์ž…๋ ฅ ํ•„๋“œ์—๋Š” ๋ช…ํ™•ํ•œ <label>์„ ์ œ๊ณตํ•˜๊ณ , ๋ฒ„ํŠผ์—๋Š” "์ €์žฅ", "์ทจ์†Œ", "๋‹ค์Œ ๋‹จ๊ณ„" ๋“ฑ ๋™์ž‘์„ ๋ช…ํ™•ํžˆ ์„ค๋ช…ํ•˜๋Š” ํ…์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์ดํŠธ ์ „์ฒด์—์„œ ๋™์ผ ๊ธฐ๋Šฅ์˜ ๋ฒ„ํŠผ์€ ๋™์ผํ•œ ๋ ˆ์ด๋ธ”์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: ๋ชจ๋“  ์ €์žฅ ๋ฒ„ํŠผ์€ "์ €์žฅ").
    • Don't: ์‹œ๊ฐ์ ์œผ๋กœ ์ œ๋ชฉ์ฒ˜๋Ÿผ ๋ณด์ด๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด <div>์— ํฐ ํฐํŠธ์™€ ๊ตต์€ ์Šคํƒ€์ผ๋งŒ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ฒ„ํŠผ์— "ํด๋ฆญ", "์—ฌ๊ธฐ" ๋“ฑ ๋ชจํ˜ธํ•œ ๋ ˆ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, ์•„์ด์ฝ˜๋งŒ ์žˆ๋Š” ๋ฒ„ํŠผ์— ์Šคํฌ๋ฆฐ ๋ฆฌ๋”๊ฐ€ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ์ˆจ์€ ํ…์ŠคํŠธ๋‚˜ aria-label์„ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ํฌ์ปค์Šค๊ฐ€ ์‹œ๊ฐ์ ์œผ๋กœ ๋ณด์ด๋Š”๊ฐ€? 2.4.7 Focus Visible (AA)

2.5 ์ž…๋ ฅ ๋ฐฉ์‹

  • ๋ณต์žกํ•œ ์ œ์Šค์ฒ˜ ๋Œ€์‹  ๋‹จ์ผ ํฌ์ธํ„ฐ ๋™์ž‘์œผ๋กœ ๋Œ€์ฒด ๊ฐ€๋Šฅํ•˜๋„๋ก ํ–ˆ๋Š”๊ฐ€? 2.5.1 Pointer Gestures (A)
  • ํฌ์ธํ„ฐ ์ž…๋ ฅ์ด ์‹ค์ˆ˜๋กœ ์‹คํ–‰๋˜์ง€ ์•Š๋„๋ก ์ทจ์†Œ ๊ฐ€๋Šฅ์„ฑ์„ ์ œ๊ณตํ–ˆ๋Š”๊ฐ€? 2.5.2 Pointer Cancellation (A)
    • Do: ๋ฒ„ํŠผ ํด๋ฆญ๊ณผ ๊ฐ™์€ ์•ก์…˜์€ 'down' ์ด๋ฒคํŠธ(mousedown, touchstart)๊ฐ€ ์•„๋‹Œ 'up' ์ด๋ฒคํŠธ(mouseup, click, touchend)์—์„œ ์‹คํ–‰๋˜๋„๋ก ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ ์ƒํƒœ์—์„œ ํฌ์ธํ„ฐ๋ฅผ ๋ฒ„ํŠผ ๋ฐ–์œผ๋กœ ์ด๋™ํ•œ ํ›„ ๋–ผ๋ฉด ์•„๋ฌด ๋™์ž‘๋„ ์ผ์–ด๋‚˜์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • Don't: ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋Š” ์ˆœ๊ฐ„(mousedown, touchstart) ๋ฐ”๋กœ ๋™์ž‘(์˜ˆ: ์‚ญ์ œ, ์ „์†ก)์ด ์‹คํ–‰๋˜๋„๋ก ํ•˜์—ฌ, ์‚ฌ์šฉ์ž๊ฐ€ ์‹ค์ˆ˜๋กœ ๋ˆŒ๋ €๋‹ค๊ฐ€ ๋–ผ๊ธฐ ์ „์— ์ทจ์†Œํ•  ๊ธฐํšŒ๋ฅผ ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๋ ˆ์ด๋ธ”๊ณผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์  ์ด๋ฆ„์ด ์ผ์น˜ํ•˜๋Š”๊ฐ€? 2.5.3 Label in Name (A)
  • ๋ชจ์…˜ ๊ธฐ๋ฐ˜ ์ž…๋ ฅ(์˜ˆ: ํ”๋“ค๊ธฐ)์ด ํ•„์ˆ˜๊ฐ€ ์•„๋‹Œ ์„ ํƒ ์‚ฌํ•ญ์ธ๊ฐ€? 2.5.4 Motion Actuation (A)

3. ์ดํ•ด์˜ ์šฉ์ด์„ฑ (Understandable)

์‚ฌ์šฉ์ž๊ฐ€ ์ฝ˜ํ…์ธ ์™€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„.

3.1 ๊ฐ€๋…์„ฑ

  • ํŽ˜์ด์ง€์˜ ๊ธฐ๋ณธ ์–ธ์–ด๊ฐ€ ๋ช…์‹œ๋˜์–ด ์žˆ๋Š”๊ฐ€? 3.1.1 Language of Page (A)
  • ํŠน์ • ๋ถ€๋ถ„์˜ ์–ธ์–ด๊ฐ€ ๋ณ€๊ฒฝ๋  ๊ฒฝ์šฐ ์ด๋ฅผ ๋ช…์‹œํ–ˆ๋Š”๊ฐ€? 3.1.2 Language of Parts (AA)

3.2 ์˜ˆ์ธก ๊ฐ€๋Šฅ์„ฑ

  • ํฌ์ปค์Šค ๋ณ€๊ฒฝ์‹œ ์˜ˆ๊ธฐ์น˜ ์•Š์€ ๋ณ€ํ™”๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๊ฐ€? 3.2.1 On Focus (A)
    • Do: ์‚ฌ์šฉ์ž๊ฐ€ ๋ผ๋””์˜ค ๋ฒ„ํŠผ ๊ทธ๋ฃน ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•˜๊ฑฐ๋‚˜ ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด์—์„œ ์˜ต์…˜์„ ์„ ํƒํ–ˆ์„ ๋•Œ, ๋ณ„๋„์˜ '์ ์šฉ' ๋˜๋Š” '๋‹ค์Œ' ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ด์•ผ๋งŒ ๋‚ด์šฉ์ด ๋ณ€๊ฒฝ๋˜๊ฑฐ๋‚˜ ํŽ˜์ด์ง€๊ฐ€ ์ด๋™ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ž…๋ ฅ ํ•„๋“œ์— ํฌ์ปค์Šค๊ฐ€ ๊ฐ”๋‹ค๊ณ  ํ•ด์„œ ์ž๋™์œผ๋กœ ํŒ์—… ์ฐฝ์ด ๋œจ์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
    • Don't: ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด์—์„œ ํŠน์ • ์˜ต์…˜์„ ์„ ํƒํ•˜๋Š” ์ฆ‰์‹œ ํŽ˜์ด์ง€๊ฐ€ ์ƒˆ๋กœ๊ณ ์นจ๋˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ์ฒดํฌ๋ฐ•์Šค๋ฅผ ์„ ํƒํ•˜์ž๋งˆ์ž ๋™์˜์„œ๊ฐ€ ์ œ์ถœ๋ฉ๋‹ˆ๋‹ค.
  • ์ž…๋ ฅ ์‹œ ๋ฌธ๋งฅ์ด ์˜ˆ๊ธฐ์น˜ ์•Š๊ฒŒ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š”๊ฐ€? 3.2.2 On Input (A)
  • ๋‚ด๋น„๊ฒŒ์ด์…˜์ด ๋ชจ๋“  ํŽ˜์ด์ง€์—์„œ ์ผ๊ด€์ ์ธ๊ฐ€? 3.2.3 Consistent Navigation (AA)
    • Do: ๋ฉ”์ธ ๋ฉ”๋‰ด(๊ธ€๋กœ๋ฒŒ ๋‚ด๋น„๊ฒŒ์ด์…˜ ๋ฐ”), ํ‘ธํ„ฐ, ๊ฒ€์ƒ‰์ฐฝ ๋“ฑ ๋ฐ˜๋ณต๋˜๋Š” ์š”์†Œ๋Š” ๋ชจ๋“  ํŽ˜์ด์ง€์—์„œ ๋™์ผํ•œ ์œ„์น˜์™€ ํ˜•ํƒœ๋กœ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. '์žฅ๋ฐ”๊ตฌ๋‹ˆ ๋‹ด๊ธฐ' ๋ฒ„ํŠผ์€ ์‚ฌ์ดํŠธ ๋‚ด ๋ชจ๋“  ์ƒํ’ˆ ํŽ˜์ด์ง€์—์„œ ๋™์ผํ•œ ์•„์ด์ฝ˜๊ณผ ํ…์ŠคํŠธ ๋ ˆ์ด๋ธ”์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • Don't: ์–ด๋–ค ํŽ˜์ด์ง€์—์„œ๋Š” ์ƒ๋‹จ์— ์žˆ๋˜ ์ฃผ ๋ฉ”๋‰ด๊ฐ€ ๋‹ค๋ฅธ ํŽ˜์ด์ง€์—์„œ๋Š” ์™ผ์ชฝ์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. 'ํŽธ์ง‘' ๊ธฐ๋Šฅ์„ ์–ด๋–ค ๊ณณ์—์„œ๋Š” ์—ฐํ•„ ์•„์ด์ฝ˜์œผ๋กœ, ๋‹ค๋ฅธ ๊ณณ์—์„œ๋Š” '์ˆ˜์ •'์ด๋ผ๋Š” ํ…์ŠคํŠธ ๋ฒ„ํŠผ์œผ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  • ๋™์ผํ•œ ๊ธฐ๋Šฅ์˜ ์š”์†Œ๊ฐ€ ์ผ๊ด€๋˜๊ฒŒ ์‹๋ณ„๋˜๋Š”๊ฐ€? 3.2.4 Consistent Identification (AA)

3.3 ์ž…๋ ฅ ๋„์›€

  • ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ด๋ฅผ ๋ช…ํ™•ํžˆ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ œ๊ณตํ–ˆ๋Š”๊ฐ€? 3.3.1 Error Identification (A)
    • Do: ํผ ์ œ์ถœ ์‹œ ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋‹ค๋ฉด, ์–ด๋–ค ํ•„๋“œ์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ํ•ด๋‹น ํ•„๋“œ ์˜†์ด๋‚˜ ์•„๋ž˜์— ๋ช…ํ™•ํ•œ ํ…์ŠคํŠธ(์˜ˆ: "์ด๋ฉ”์ผ ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.")๋กœ ์•Œ๋ ค์ฃผ๊ณ , ํ•ด๋‹น ํ•„๋“œ๋กœ ํฌ์ปค์Šค๋ฅผ ์ด๋™์‹œํ‚ค๊ฑฐ๋‚˜ ์˜ค๋ฅ˜ ์š”์•ฝ ์ •๋ณด๋ฅผ ์ƒ๋‹จ์— ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. aria-describedby๋ฅผ ์‚ฌ์šฉํ•ด ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์™€ ์ž…๋ ฅ ํ•„๋“œ๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ ์œผ๋กœ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
    • Don't: ํผ ์ œ์ถœ ์‹คํŒจ ์‹œ ํŽ˜์ด์ง€ ์ƒ๋‹จ์— "์ž…๋ ฅ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค."๋ผ๋Š” ๋ฉ”์‹œ์ง€๋งŒ ๋„์šฐ๊ณ  ์–ด๋А ํ•„๋“œ๊ฐ€ ์ž˜๋ชป๋˜์—ˆ๋Š”์ง€ ์•Œ๋ ค์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ค๋ฅ˜ ํ•„๋“œ์— ํ…Œ๋‘๋ฆฌ ์ƒ‰์ƒ๋งŒ ๋ณ€๊ฒฝํ•˜๊ณ  ํ…์ŠคํŠธ ์„ค๋ช…์„ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์ž…๋ ฅ ํ•„๋“œ์— ๋ ˆ์ด๋ธ” ๋˜๋Š” ์ง€์‹œ๋ฌธ์„ ์ œ๊ณตํ–ˆ๋Š”๊ฐ€? 3.3.2 Labels or Instructions (A)
  • ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์‹œ ์ˆ˜์ • ์ œ์•ˆ์„ ์ œ๊ณตํ–ˆ๋Š”๊ฐ€? 3.3.3 Error Suggestion (AA)
  • ๋ฒ•์ /๊ธˆ์œต/๋ฐ์ดํ„ฐ ๊ด€๋ จ ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜๋‹จ(ํ™•์ธ ๋‹จ๊ณ„ ๋“ฑ)์„ ์ œ๊ณตํ–ˆ๋Š”๊ฐ€? 3.3.4 Error Prevention (Legal, Financial, Data) (AA)

4. ๊ฒฌ๊ณ ์„ฑ (Robust)

๋‹ค์–‘ํ•œ ๊ธฐ์ˆ ๊ณผ ๋ณด์กฐ ๋„๊ตฌ์—์„œ ์•ˆ์ •์ ์œผ๋กœ ์ž‘๋™ํ•˜๋„๋ก ์„ค๊ณ„.

4.1 ํ˜ธํ™˜์„ฑ

  • HTML/CSS๊ฐ€ ํŒŒ์‹ฑ ์˜ค๋ฅ˜ ์—†์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘์„ฑ๋˜์—ˆ๋Š”๊ฐ€? 4.1.1 Parsing (A)
  • ๋ชจ๋“  ์š”์†Œ์— ์ด๋ฆ„(Name), ์—ญํ• (Role), ๊ฐ’(Value)์ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ ์œผ๋กœ ์ œ๊ณต๋˜์—ˆ๋Š”๊ฐ€? 4.1.2 Name, Role, Value (A)
    • Do: ์ปค์Šคํ…€ ์ฒดํฌ๋ฐ•์Šค๋ฅผ <div>์™€ CSS๋กœ ๋งŒ๋“ค์—ˆ๋‹ค๋ฉด, <div role="checkbox" aria-checked="true" tabindex="0" aria-labelledby="label-id"> ์™€ ๊ฐ™์ด ARIA ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์—ญํ• (checkbox), ์ƒํƒœ(checked), ์ด๋ฆ„(labelledby)์„ ๋ช…์‹œํ•ฉ๋‹ˆ๋‹ค. ํ‘œ์ค€ HTML ์ปจํŠธ๋กค(<button>, <input type="checkbox"> ๋“ฑ)์„ ์ตœ๋Œ€ํ•œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • Don't: ์•„์ด์ฝ˜ ๋ฒ„ํŠผ์„ <span> ํƒœ๊ทธ์™€ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€๋กœ๋งŒ ๋งŒ๋“ค๊ณ , ์Šคํฌ๋ฆฐ ๋ฆฌ๋”๊ฐ€ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” aria-label์ด๋‚˜ ์ˆจ์€ ํ…์ŠคํŠธ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์•„ ์šฉ๋„๋ฅผ ์•Œ ์ˆ˜ ์—†๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ปค์Šคํ…€ ์ปดํฌ๋„ŒํŠธ์— role์ด๋‚˜ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” aria-* ์†์„ฑ์„ ๋ˆ„๋ฝํ•ฉ๋‹ˆ๋‹ค.
  • ์ƒํƒœ ๋ฉ”์‹œ์ง€๊ฐ€ ๋ณด์กฐ ๊ธฐ์ˆ ๋กœ ์ „๋‹ฌ๋˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ๋Š”๊ฐ€? 4.1.3 Status Messages (AA)
    • Do: ํ•ญ๋ชฉ์„ ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ์ถ”๊ฐ€ํ–ˆ์„ ๋•Œ, "์ƒํ’ˆ์ด ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค." ์™€ ๊ฐ™์€ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚˜๋Š” ์˜์—ญ์„ <div aria-live="polite"> ๋˜๋Š” <div role="status"> ๋กœ ๊ฐ์‹ธ์„œ ์Šคํฌ๋ฆฐ ๋ฆฌ๋”๊ฐ€ ํ•ด๋‹น ๋ฉ”์‹œ์ง€๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ž๋™์œผ๋กœ ์ฝ์–ด์ฃผ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
    • Don't: ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๊ฐ€ ๋กœ๋“œ๋˜๊ฑฐ๋‚˜, ์„ค์ •์ด ์ €์žฅ๋˜์—ˆ๋‹ค๋Š” ์‹œ๊ฐ์  ํ”ผ๋“œ๋ฐฑ๋งŒ ์ œ๊ณตํ•˜๊ณ , ์Šคํฌ๋ฆฐ ๋ฆฌ๋” ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ์•„๋ฌด๋Ÿฐ ์ •๋ณด ์ „๋‹ฌ ์—†์ด ์กฐ์šฉํžˆ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

5. ํ•œ๊ตญํ˜• ํŠนํ™” ์š”๊ตฌ์‚ฌํ•ญ

ํ•œ๊ตญํ˜• ์›น ์ฝ˜ํ…์ธ  ์ ‘๊ทผ์„ฑ ์ง€์นจ 2.2์—์„œ ๊ฐ•์กฐ๋œ ํ•œ๊ตญ ํŠนํ™” ์š”๊ตฌ์‚ฌํ•ญ๋“ค.

  • ๋ฐ˜๋ณต ์ž…๋ ฅ ์ •๋ณด ์ตœ์†Œํ™”: ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ž…๋ ฅํ•ด์•ผ ํ•˜๋Š” ์ •๋ณด๋ฅผ ์ค„์˜€๋Š”๊ฐ€? (7.3.4)
    • Do: ํšŒ์›๊ฐ€์ž… ์‹œ ์ž…๋ ฅํ•œ ์ฃผ์†Œ๋ฅผ ์ฃผ๋ฌธ ์‹œ '๊ธฐ๋ณธ ๋ฐฐ์†ก์ง€๋กœ ์‚ฌ์šฉ' ์˜ต์…˜์œผ๋กœ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๊ฑฐ๋‚˜, ์ด์ „ ๊ฒฐ์ œ ์ •๋ณด๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅํ•˜์—ฌ ๋‹ค์Œ ๊ฒฐ์ œ ์‹œ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก(์‚ฌ์šฉ์ž ๋™์˜ ํ•˜์—) ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    • Don't: ์ƒํ’ˆ ์ฃผ๋ฌธ ์‹œ ๋งค๋ฒˆ ์ด๋ฆ„, ์—ฐ๋ฝ์ฒ˜, ์ฃผ์†Œ๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ƒˆ๋กœ ์ž…๋ ฅํ•˜๋„๋ก ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๋‹จ๊ณ„๋กœ ์ด๋ฃจ์–ด์ง„ ์‹ ์ฒญ์„œ์—์„œ ์ด์ „ ๋‹จ๊ณ„์— ์ž…๋ ฅํ–ˆ๋˜ ๋™์ผํ•œ ์ •๋ณด๋ฅผ ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ ๋˜ ๋ฌผ์–ด๋ด…๋‹ˆ๋‹ค.
  • ์ ๊ทผ ๊ฐ€๋Šฅํ•œ ์ธ์ฆ: ์ธ์ฆ ๊ณผ์ •์—์„œ ๋ณด์กฐ ๊ธฐ์ˆ  ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋„๋ก ์„ค๊ณ„ํ–ˆ๋Š”๊ฐ€? (7.3.3)
    • Do: ์ด๋ฏธ์ง€ CAPTCHA ๋Œ€์‹  ์Œ์„ฑ CAPTCHA ์˜ต์…˜์„ ์ œ๊ณตํ•˜๊ฑฐ๋‚˜, reCAPTCHA v3์™€ ๊ฐ™์ด ์‚ฌ์šฉ์ž ์ธํ„ฐ๋ž™์…˜์ด ์ ์€ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ณต๋™์ธ์ฆ์„œ(๊ตฌ ๊ณต์ธ์ธ์ฆ์„œ), ๊ธˆ์œต์ธ์ฆ์„œ ๋“ฑ ๊ตญ๋‚ด ์ธ์ฆ ์ˆ˜๋‹จ์„ ์‚ฌ์šฉํ•  ๋•Œ ํ•„์š”ํ•œ ํ”„๋กœ๊ทธ๋žจ ์„ค์น˜ ๋ฐ ์‹คํ–‰ ๊ณผ์ •์ด ํ‚ค๋ณด๋“œ๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๊ณ  ์Šคํฌ๋ฆฐ ๋ฆฌ๋”๋กœ ์•ˆ๋‚ด๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. (๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ๋Œ€์ฒด ์ธ์ฆ ์ˆ˜๋‹จ ์ œ๊ณต)
    • Don't: ์‹œ๊ฐ์  ์ด๋ฏธ์ง€ CAPTCHA๋งŒ ์ œ๊ณตํ•˜๊ณ  ๋Œ€์ฒด ์ˆ˜๋‹จ์ด ์—†์Šต๋‹ˆ๋‹ค. ํŠน์ • ๋ณด์•ˆ ํ”„๋กœ๊ทธ๋žจ(ActiveX ๋˜๋Š” ์‹คํ–‰ ํŒŒ์ผ ํ˜•ํƒœ) ์„ค์น˜๊ฐ€ ํ•„์ˆ˜์ด๋ฉฐ, ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์ด ํ‚ค๋ณด๋“œ ์กฐ์ž‘์ด๋‚˜ ์Šคํฌ๋ฆฐ ๋ฆฌ๋”๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„ ์ œํ•œ์ด ์žˆ๋Š” OTP ์ž…๋ ฅ ํ™”๋ฉด์—์„œ ์‹œ๊ฐ„ ์—ฐ์žฅ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๊ตญ๋‚ด ๋ฒ•์  ์ค€์ˆ˜: ใ€Œ์žฅ์• ์ธ ์ฐจ๋ณ„๊ธˆ์ง€๋ฒ•ใ€ ๋ฐ ใ€Œ๊ตญ๊ฐ€์ •๋ณดํ™”๊ธฐ๋ณธ๋ฒ•ใ€์— ๋”ฐ๋ฅธ ์˜๋ฌด ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ–ˆ๋Š”๊ฐ€?
  • ๋ชจ๋ฐ”์ผ ํ™˜๊ฒฝ ๊ณ ๋ ค: PC๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ์—์„œ์˜ ์ ‘๊ทผ์„ฑ์„ ๊ฒ€ํ† ํ–ˆ๋Š”๊ฐ€? (1 ์ ์šฉ ๋ฒ”์œ„)
    • Do: ๋ชจ๋ฐ”์ผ ํ™”๋ฉด์—์„œ ๋ฒ„ํŠผ์ด๋‚˜ ๋งํฌ ๋“ฑ ํ„ฐ์น˜ ๋Œ€์ƒ์˜ ํฌ๊ธฐ๋ฅผ ์ตœ์†Œ 44x44 CSS ํ”ฝ์…€ ์ด์ƒ์œผ๋กœ ์ถฉ๋ถ„ํžˆ ํ™•๋ณดํ•˜๊ณ , ์š”์†Œ ๊ฐ„ ๊ฐ„๊ฒฉ๋„ ์ ์ ˆํžˆ ๋ฐฐ์น˜ํ•˜์—ฌ ์ž˜๋ชป ํ„ฐ์น˜ํ•  ๊ฐ€๋Šฅ์„ฑ์„ ์ค„์ž…๋‹ˆ๋‹ค. ํ•€์น˜ ์คŒ(Pinch zoom) ๊ธฐ๋Šฅ์„ ๋ง‰์ง€ ์•Š์•„ ์‚ฌ์šฉ์ž๊ฐ€ ํ™”๋ฉด์„ ํ™•๋Œ€ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ํ™”๋ฉด ๋ฐฉํ–ฅ(๊ฐ€๋กœ/์„ธ๋กœ) ์ „ํ™˜ ์‹œ ์ฝ˜ํ…์ธ ๊ฐ€ ์ž˜๋ฆฌ์ง€ ์•Š๊ณ  ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์žฌ๋ฐฐ์น˜๋˜๋„๋ก ๋ฐ˜์‘ํ˜•์œผ๋กœ ๋””์ž์ธํ•ฉ๋‹ˆ๋‹ค.
    • Don't: ๋ชจ๋ฐ”์ผ ํ™”๋ฉด์—์„œ ๋ฒ„ํŠผ๋“ค์ด ๋„ˆ๋ฌด ์ž‘๊ณ  ์ด˜์ด˜ํ•˜๊ฒŒ ๋ถ™์–ด ์žˆ์–ด ๋ˆ„๋ฅด๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. <meta name="viewport" content="..., user-scalable=no">๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž์˜ ํ™•๋Œ€/์ถ•์†Œ ๊ธฐ๋Šฅ์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋กœ ๋ชจ๋“œ์—์„œ๋Š” ์ฝ˜ํ…์ธ ์˜ ์ผ๋ถ€๊ฐ€ ์ž˜๋ ค๋‚˜๊ฐ€ ์Šคํฌ๋กค ์—†์ด๋Š” ๋ณผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

  • ๊ฐ ์ปดํฌ๋„ŒํŠธ(๋ฒ„ํŠผ, ์ž…๋ ฅ ํ•„๋“œ, ๋‚ด๋น„๊ฒŒ์ด์…˜ ๋“ฑ)๋ฅผ ์„ค๊ณ„ํ•  ๋•Œ ์ด ์ฒดํฌ๋ฆฌ์ŠคํŠธ๋ฅผ ์ฐธ๊ณ 
  • ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ์„ ํ•˜๋‚˜์”ฉ ๊ฒ€ํ† ํ•˜๋ฉฐ "์˜ˆ/์•„๋‹ˆ์˜ค"๋กœ ํ™•์ธํ•˜๊ณ , ๋ฏธ์ค€์ˆ˜ ํ•ญ๋ชฉ์€ ๊ฐœ์„  ๊ณ„ํš ์ˆ˜๋ฆฝ
  • ๊ฐœ๋ฐœ ๋ฐ QA ๋‹จ๊ณ„์—์„œ ์Šคํฌ๋ฆฐ ๋ฆฌ๋”(NVDA, VoiceOver ๋“ฑ)์™€ ํ‚ค๋ณด๋“œ ํ…Œ์ŠคํŠธ ๋ณ‘ํ–‰

์ฐธ๊ณ  ์ž๋ฃŒ

Clone this wiki locally