์น ์ปดํฌ๋ํธ์ ์๋ํ๋ ์ ๊ทผ์ฑ ํ ์คํธ ์ข ํฉ ๊ฐ์ด๋. WCAG ๊ท์ ์ค์ ๋ฐ ์ ์ธ๊ณ ์ฌ์ฉ์๋ฅผ ์ํ ํฌ๊ด์ ์ธ ์ฌ์ฉ์ ๊ฒฝํ ๋ณด์ฅ.
์น ์ปดํฌ๋ํธ ์ ๊ทผ์ฑ ํ ์คํธ: ์๋ํ๋ ๊ท์ ์ค์ ๊ฒ์ฆ
์ค๋๋ ์ ์ ๋ ๋์งํธํ๋๋ ์ธ์์์ ์ ๊ทผ์ฑ ๋์ ์น ๊ฒฝํ์ ๋ง๋๋ ๊ฒ์ ๋จ์ํ ๋ชจ๋ฒ ์ฌ๋ก๊ฐ ์๋๋ผ ํฌ์ฉ์ฑ๊ณผ ๋ฒ์ ๊ท์ ์ค์๋ฅผ ์ํ ๊ทผ๋ณธ์ ์ธ ์๊ตฌ ์ฌํญ์ ๋๋ค. ์น ์ปดํฌ๋ํธ๋ ๊ฐ๋ ฅํ ์บก์ํ์ ์ฌ์ฌ์ฉ์ฑ์ ํตํด ์ต์ ์น ๊ฐ๋ฐ์ ์ด์์ด ๋๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ์ปดํฌ๋ํธ๊ฐ ๋ชจ๋ ์ฌ์ฉ์๊ฐ ๋ฅ๋ ฅ์ด๋ ๊ธฐ์ ์ ๊ด๊ณ์์ด ์ ๊ทผํ ์ ์๋๋ก ๋ณด์ฅํ๋ ๊ฒ์ ๊ณ ์ ํ ๊ณผ์ ๋ฅผ ์ ์ํฉ๋๋ค. ์ด ๊ฒ์๋ฌผ์ ์น ์ปดํฌ๋ํธ ์ ๊ทผ์ฑ ํ ์คํธ์ ์ค์ํ ์์ญ์ ์ฌ์ธต์ ์ผ๋ก ๋ค๋ฃจ๋ฉฐ, ์๋ํ๋ ๊ท์ ์ค์ ๊ฒ์ฆ์ด ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ๊ณ ์ ์ธ๊ณ ์ฌ์ฉ์๋ฅผ ์ํ ๋ณด๋ค ๊ณตํํ ๋์งํธ ํ๊ฒฝ์ ๋ณด์ฅํ๋ ๋ฐฉ๋ฒ์ ์ค์ ์ ์ผ๋ก ๋ค๋ฃน๋๋ค.
์น ์ปดํฌ๋ํธ ์ ๊ทผ์ฑ์ ์ค์์ฑ
์น ์ปดํฌ๋ํธ๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌ์ถํ๋ ๋ชจ๋์์ด๊ณ ์ ์ง ๊ด๋ฆฌํ๊ธฐ ์ฌ์ด ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ๋ณต์กํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๊ณ ์์ฒด ํฌํจ๋ ๋จ์๋ก ๋ถํ ํ์ฌ ์ฝ๋ ๊ตฌ์ฑ ๋ฐ ๊ฐ๋ฐ ํจ์จ์ฑ์ ํฅ์์ํต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ์บก์ํ๋ ์ ์คํ๊ฒ ์ ๊ทผํ์ง ์์ผ๋ฉด ์๋์น ์๊ฒ ์ ๊ทผ์ฑ ์ฌ์ผ๋ก๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ์น ์ปดํฌ๋ํธ๊ฐ ์ฒ์๋ถํฐ ์ ๊ทผ์ฑ์ ๊ณ ๋ คํ์ง ์๊ณ ๊ฐ๋ฐ๋๋ฉด ์ฅ์ ๊ฐ ์๋ ์ฌ์ฉ์, ์๋ฅผ ๋ค์ด ์คํฌ๋ฆฐ ๋ฆฌ๋, ํค๋ณด๋ ํ์ ๋๋ ๊ธฐํ ๋ณด์กฐ ๊ธฐ์ ์ ์์กดํ๋ ์ฌ์ฉ์์๊ฒ ์ฅ๋ฒฝ์ ๋ง๋ค ์ ์์ต๋๋ค.
์น ์ฝํ ์ธ ์ ๊ทผ์ฑ ์ง์นจ(WCAG)์ ์น ์ฝํ ์ธ ๋ฅผ ๋ณด๋ค ์ ๊ทผ์ฑ ๋๊ฒ ๋ง๋ค๊ธฐ ์ํ ๋ณดํธ์ ์ผ๋ก ์ธ์ ๋๋ ํ๋ ์์ํฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. WCAG ์์น(์ธ์ ๊ฐ๋ฅ, ์ด์ฉ ๊ฐ๋ฅ, ์ดํด ๊ฐ๋ฅ, ๊ฒฌ๊ณ ์ฑ)์ ์ค์ํ๋ ๊ฒ์ ์ ์ธ๊ณ์ ์ธ ๋๋ฌ์ ๋ชฉํ๋ก ํ๋ ๋ชจ๋ ๋์งํธ ์ ํ์ ์ค์ํฉ๋๋ค. ์น ์ปดํฌ๋ํธ์ ๊ฒฝ์ฐ ์ด๋ ๋ค์์ ๋ณด์ฅํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
- ์๋ฏธ๋ก ์ด ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌํ๋์์ต๋๋ค: ๊ธฐ๋ณธ HTML ์์๋ ๊ณ ์ ํ ์๋ฏธ๋ก ์ ์๋ฏธ๋ฅผ ๊ฐ์ง๋๋ค. ์ฌ์ฉ์ ์ ์ ์์๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๊ฐ๋ฐ์๋ ARIA ์์ฑ๊ณผ ์ ์ ํ ์ญํ ์ ํตํด ๋๋ฑํ ์๋ฏธ๋ก ์ ์ ๋ณด๋ฅผ ์ ๊ณตํด์ผ ํฉ๋๋ค.
- ํค๋ณด๋ ์ด์ฉ์ฑ์ด ์ ์ง๋ฉ๋๋ค: ์ปดํฌ๋ํธ ๋ด์ ๋ชจ๋ ๋ํํ ์์๋ ํค๋ณด๋๋ง์ผ๋ก ํฌ์ปค์ค ๊ฐ๋ฅํ๊ณ ์ด์ฉ ๊ฐ๋ฅํด์ผ ํฉ๋๋ค.
- ํฌ์ปค์ค ๊ด๋ฆฌ๊ฐ ์ฐ์ํ๊ฒ ์ฒ๋ฆฌ๋ฉ๋๋ค: ์ปดํฌ๋ํธ๊ฐ ๋์ ์ผ๋ก ์ฝํ ์ธ ๋ฅผ ๋ณ๊ฒฝํ๊ฑฐ๋ ์ ์์๋ฅผ ๋์ ํ ๋(๋ชจ๋ฌ ๋๋ ๋๋กญ๋ค์ด๊ณผ ๊ฐ์) ์ฌ์ฉ์๋ฅผ ์๋ดํ๊ธฐ ์ํด ํฌ์ปค์ค๊ฐ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌ๋์ด์ผ ํฉ๋๋ค.
- ์ ๋ณด๊ฐ ์ธ์ ๊ฐ๋ฅํฉ๋๋ค: ์ฝํ ์ธ ๋ ์ฌ์ฉ์๊ฐ ์ธ์ํ ์ ์๋ ๋ฐฉ์์ผ๋ก ์ ์๋์ด์ผ ํ๋ฉฐ, ์ฌ๊ธฐ์๋ ๋นํ ์คํธ ์ฝํ ์ธ ์ ๋ํ ํ ์คํธ ๋์ ์ ๊ณต ๋ฐ ์ถฉ๋ถํ ์์ ๋๋น ๋ณด์ฅ์ด ํฌํจ๋ฉ๋๋ค.
- ์ปดํฌ๋ํธ๊ฐ ๊ฒฌ๊ณ ํฉ๋๋ค: ๋ณด์กฐ ๊ธฐ์ ์ ํฌํจํ ๊ด๋ฒ์ํ ์ฌ์ฉ์ ์์ด์ ํธ์ ํธํ๋์ด์ผ ํฉ๋๋ค.
์น ์ปดํฌ๋ํธ ์ ๊ทผ์ฑ ํ ์คํธ์ ๊ณผ์
์ ํต์ ์ธ ์ ๊ทผ์ฑ ํ ์คํธ ๋ฐฉ๋ฒ์ ์ ์ฉํ์ง๋ง ์น ์ปดํฌ๋ํธ์ ์ ์ฉํ ๋ ์ข ์ข ์ฅ์ ๋ฌผ์ ์ง๋ฉดํฉ๋๋ค.
- ์บก์ํ: ์น ์ปดํฌ๋ํธ์ ํต์ฌ ๊ธฐ๋ฅ์ธ shadow DOM์ ํ์ค DOM ์ํ ๋๊ตฌ์์ ์ปดํฌ๋ํธ์ ๋ด๋ถ ๊ตฌ์กฐ๋ฅผ ๊ฐ๋ฆด ์ ์์ด ์ผ๋ถ ์๋ํ๋ ๊ฒ์ฌ๊ธฐ๊ฐ ์ ๊ทผ์ฑ ์์ฑ์ ๊ฒ์ฌํ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋ญ๋๋ค.
- ๋์ ํน์ฑ: ์น ์ปดํฌ๋ํธ๋ ์ข ์ข ๋ณต์กํ JavaScript ์ํธ ์์ฉ ๋ฐ ๋์ ์ฝํ ์ธ ์ ๋ฐ์ดํธ๋ฅผ ํฌํจํ๋ฉฐ, ์ด๋ ์ ์ ๋ถ์ ๋๊ตฌ๊ฐ ์์ ํ ํ๊ฐํ๊ธฐ ์ด๋ ต์ต๋๋ค.
- ์ฌ์ฌ์ฉ์ฑ ๋ ์ปจํ ์คํธ: ์ปดํฌ๋ํธ๋ ๋ ๋ฆฝ์ ์ผ๋ก ์ ๊ทผ ๊ฐ๋ฅํ ์ ์์ง๋ง, ๋ค๋ฅธ ์ปจํ ์คํธ์ ํตํฉ๋๊ฑฐ๋ ๋ค๋ฅธ ์ปดํฌ๋ํธ์ ๊ฒฐํฉ๋ ๋ ์ ๊ทผ์ฑ์ด ์ ํ๋ ์ ์์ต๋๋ค.
- ์ฌ์ฉ์ ์ ์ ์์ ๋ฐ Shadow DOM: ํ์ค ๋ธ๋ผ์ฐ์ ์ ๊ทผ์ฑ API ๋ฐ ํ ์คํธ ๋๊ตฌ๊ฐ ํญ์ ์ฌ์ฉ์ ์ ์ ์์ ๋๋ shadow DOM์ ๋ฏธ๋ฌํ ์ฐจ์ด๋ฅผ ์์ ํ ์ดํดํ์ง ๋ชปํ ์ ์์ผ๋ฏ๋ก ์ ๋ฌธ์ ์ธ ์ ๊ทผ ๋ฐฉ์์ด ํ์ํฉ๋๋ค.
์๋ํ๋ ์ ๊ทผ์ฑ ํ ์คํธ์ ํ
์๋ํ๋ ํ ์คํธ ๋๊ตฌ๋ ํจ์จ์ ์ด๊ณ ํ์ฅ ๊ฐ๋ฅํ ์ ๊ทผ์ฑ ๊ฒ์ฆ์ ์ํด ํ์์ ์ด ๋์์ต๋๋ค. ์ฝ๋๋ฅผ ์ ์ํ๊ฒ ์ค์บํ๊ณ ์ผ๋ฐ์ ์ธ ์ ๊ทผ์ฑ ์๋ฐ์ ์๋ณํ๋ฉฐ ์คํ ๊ฐ๋ฅํ ํผ๋๋ฐฑ์ ์ ๊ณตํ์ฌ ๊ฐ๋ฐ ์ฃผ๊ธฐ๋ฅผ ํฌ๊ฒ ๊ฐ์ํํ ์ ์์ต๋๋ค. ์น ์ปดํฌ๋ํธ์ ๊ฒฝ์ฐ ์๋ํ๋ ๋ค์์ ์ ๊ณตํฉ๋๋ค.
- ์ด๊ธฐ์ ์๋ฐ ์ฌํญ ํฌ์ฐฉ: CI/CD ํ์ดํ๋ผ์ธ์ ์ ๊ทผ์ฑ ๊ฒ์ฌ๋ฅผ ํตํฉํ์ฌ ๋์ ๋๋ ์ฆ์ ๋ฌธ์ ๋ฅผ ์๋ณํฉ๋๋ค.
- ์ผ๊ด์ฑ ๋ณด์ฅ: ์น ์ปดํฌ๋ํธ์ ๋ชจ๋ ์ธ์คํด์ค ๋ฐ ๋ณํ์์ ์ฌ์ฉ๋๋ ์์น์ ๊ด๊ณ์์ด ๋์ผํ ํ ์คํธ ์ธํธ๋ฅผ ์ ์ฉํฉ๋๋ค.
- ์๋ ๋ ธ๋ ฅ ๊ฐ์: ์๋ํ๋ ๋๊ตฌ๊ฐ ๊ฐ์งํ ์ ์๋ ๋ ๋ณต์กํ๊ณ ๋ฏธ๋ฌํ ์ ๊ทผ์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ์ง์คํ ์ ์๋๋ก ์๋ ํ ์คํฐ๋ฅผ ํด๋ฐฉํฉ๋๋ค.
- ๊ธ๋ก๋ฒ ํ์ค ์ถฉ์กฑ: ์ ์ธ๊ณ์ ์ผ๋ก ๊ด๋ จ์ฑ์ด ๋์ WCAG์ ๊ฐ์ ํ๋ฆฝ๋ ์ง์นจ์ ๋ํ ๊ท์ ์ค์๋ฅผ ํ์ธํฉ๋๋ค.
์น ์ปดํฌ๋ํธ๋ฅผ ์ํ ํต์ฌ ์๋ํ ์ ๊ทผ์ฑ ํ ์คํธ ์ ๋ต
์น ์ปดํฌ๋ํธ์ ๋ํ ํจ๊ณผ์ ์ธ ์๋ํ ์ ๊ทผ์ฑ ํ ์คํธ๋ shadow DOM์ ์นจํฌํ๊ณ ์ปดํฌ๋ํธ ์๋ช ์ฃผ๊ธฐ๋ฅผ ์ดํดํ ์ ์๋ ๋๊ตฌ์ ์ ๋ต์ ์กฐํฉ์ด ํ์ํฉ๋๋ค.
1. ๊ฐ๋ฐ ์ํฌํ๋ก์ ๋๊ตฌ ํตํฉ
๊ฐ์ฅ ํจ๊ณผ์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ์๋ํ๋ ์ ๊ทผ์ฑ ๊ฒ์ฌ๋ฅผ ๊ฐ๋ฐ์์ ์ํฌํ๋ก์ ์ง์ ํตํฉํ๋ ๊ฒ์ ๋๋ค.
a. ๋ฆฐํ ๋ฐ ์ ์ ๋ถ์
์ ๊ทผ์ฑ ํ๋ฌ๊ทธ์ธ(์: React ๊ธฐ๋ฐ ์ปดํฌ๋ํธ์ฉ eslint-plugin-jsx-a11y ๋๋ vanilla JS์ฉ ์ฌ์ฉ์ ์ ์ ๊ท์น)์ด ์๋ ESLint์ ๊ฐ์ ๋๊ตฌ๋ ๋ ๋๋ง๋๊ธฐ ์ ์ ์ปดํฌ๋ํธ์ ์์ค ์ฝ๋๋ฅผ ์ค์บํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๋๊ตฌ๋ ์ฃผ๋ก light DOM์์ ์๋ํ์ง๋ง, ์ปดํฌ๋ํธ์ ํ
ํ๋ฆฟ ๋๋ JSX์ ์ ์คํ๊ฒ ์ ์ฉํ๋ฉด ๋๋ฝ๋ ARIA ๋ ์ด๋ธ ๋๋ ๋ถ์ ์ ํ ์๋ฏธ๋ก ์ ์ฌ์ฉ๊ณผ ๊ฐ์ ๊ธฐ๋ณธ์ ์ธ ๋ฌธ์ ๋ฅผ ํฌ์ฐฉํ ์ ์์ต๋๋ค.
b. ๋ธ๋ผ์ฐ์ ํ์ฅ ํ๋ก๊ทธ๋จ
๋ธ๋ผ์ฐ์ ํ์ฅ ํ๋ก๊ทธ๋จ์ ๋ธ๋ผ์ฐ์ ์์ ์ปดํฌ๋ํธ๋ฅผ ์ง์ ํ ์คํธํ ์ ์๋ ๋น ๋ฅธ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ์ธ๊ธฐ ์๋ ์ ํ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- axe DevTools: ๋ธ๋ผ์ฐ์ ์ ๊ฐ๋ฐ์ ๋๊ตฌ์ ์ํํ๊ฒ ํตํฉ๋๋ ๊ฐ๋ ฅํ ํ์ฅ ํ๋ก๊ทธ๋จ์ ๋๋ค. shadow DOM ์ปจํ ์คํธ ๋ด์์ ์๋ํ๋๋ก ์ค๊ณ๋์ด ์น ์ปดํฌ๋ํธ์ ๋งค์ฐ ํจ๊ณผ์ ์ ๋๋ค. DOM์ ๋ถ์ํ๊ณ shadow DOM์ ํฌํจํ์ฌ WCAG ํ์ค์ ๋ํ ์๋ฐ ์ฌํญ์ ๋ณด๊ณ ํฉ๋๋ค.
- Lighthouse: Chrome DevTools์ ํตํฉ๋ Lighthouse๋ ์ ๊ทผ์ฑ์ ํฌํจํ์ฌ ์น ํ์ด์ง์ ๋ํ ํฌ๊ด์ ์ธ ๊ฐ์ฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ ๋ฐ์ ์ธ ์ ๊ทผ์ฑ ์ ์๋ฅผ ์ ๊ณตํ๊ณ shadow DOM ๋ด์์๋ ํน์ ๋ฌธ์ ๋ฅผ ๊ฐ์กฐํ ์ ์์ต๋๋ค.
- WAVE (Web Accessibility Evaluation Tool): ์ ๊ทผ์ฑ ์ค๋ฅ ๋ฐ ๊ฒฝ๊ณ ์ ๋ํ ์๊ฐ์ ํผ๋๋ฐฑ๊ณผ ์์ธํ ๋ณด๊ณ ์๋ฅผ ์ ๊ณตํ๋ ๋ ๋ค๋ฅธ ๊ฐ๋ ฅํ ๋ธ๋ผ์ฐ์ ํ์ฅ ํ๋ก๊ทธ๋จ์ ๋๋ค.
์: ์ฌ์ฉ์ ์ ์ `
c. ๋ช ๋ น์ค ์ธํฐํ์ด์ค(CLI) ๋๊ตฌ
CI/CD ํตํฉ์ ๊ฒฝ์ฐ CLI ๋๊ตฌ๊ฐ ํ์์ ์ ๋๋ค. ์ด๋ฌํ ๋๊ตฌ๋ ๋น๋ ํ๋ก์ธ์ค์ ์ผ๋ถ๋ก ์๋์ผ๋ก ์คํ๋ ์ ์์ต๋๋ค.
- axe-core CLI: axe-core์ ๋ช ๋ น์ค ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์ ๊ทผ์ฑ ์ค์บ์ ์คํํ ์ ์์ต๋๋ค. ํน์ URL ๋๋ HTML ํ์ผ์ ์ค์บํ๋๋ก ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ์น ์ปดํฌ๋ํธ์ ๊ฒฝ์ฐ ๋ถ์ํ ๋ ๋๋ง๋ ์ปดํฌ๋ํธ๋ฅผ ํฌํจํ๋ ์ ์ HTML ํ์ผ์ ์์ฑํด์ผ ํ ์ ์์ต๋๋ค.
- Pa11y: Pa11y ์ ๊ทผ์ฑ ์์ง์ ์ฌ์ฉํ์ฌ ์๋ํ๋ ์ ๊ทผ์ฑ ํ ์คํธ๋ฅผ ์คํํ๋ ๋ช ๋ น์ค ๋๊ตฌ์ ๋๋ค. URL, HTML ํ์ผ ๋ฐ ์์ HTML ๋ฌธ์์ด์ ํ ์คํธํ ์ ์์ต๋๋ค.
์: CI ํ์ดํ๋ผ์ธ์์ ์คํฌ๋ฆฝํธ๊ฐ ์น ์ปดํฌ๋ํธ์ ๋ค์ํ ์ํ๋ฅผ ๋ณด์ฌ์ฃผ๋ HTML ๋ณด๊ณ ์๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ์ด ๋ณด๊ณ ์๋ Pa11y์ ์ ๋ฌ๋ฉ๋๋ค. Pa11y๊ฐ ์ฌ๊ฐํ ์ ๊ทผ์ฑ ์๋ฐ ์ฌํญ์ ๊ฐ์งํ๋ฉด ๋น๋๊ฐ ์คํจํ์ฌ ๊ท์ ์ ์ค์ํ์ง ์๋ ์ปดํฌ๋ํธ๊ฐ ๋ฐฐํฌ๋๋ ๊ฒ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค. ์ด๋ ๋ชจ๋ ๋ฐฐํฌ์์ ๊ธฐ๋ณธ ์์ค์ ์ ๊ทผ์ฑ์ด ์ ์ง๋๋๋ก ๋ณด์ฅํฉ๋๋ค.
d. ํ ์คํธ ํ๋ ์์ํฌ ํตํฉ
๋๋ฆฌ ์ฌ์ฉ๋๋ ๋ง์ JavaScript ํ ์คํธ ํ๋ ์์ํฌ(์: Jest, Cypress, Playwright)๋ ์ ๊ทผ์ฑ ํ ์คํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํฉํ๋ ํ๋ฌ๊ทธ์ธ ๋๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค.
@testing-library/jest-dom๋ฐjest-axe์ ํจ๊ปํ๋ Jest: Jest๋ฅผ ์ฌ์ฉํ์ฌ ์ปดํฌ๋ํธ๋ฅผ ํ ์คํธํ ๋jest-axe๋ฅผ ์ฌ์ฉํ์ฌ ๋จ์ ๋๋ ํตํฉ ํ ์คํธ ๋ด์์ ์ง์ axe-core ๊ฒ์ฌ๋ฅผ ์คํํ ์ ์์ต๋๋ค. ์ด๋ ์ปดํฌ๋ํธ ๋ ผ๋ฆฌ ๋ฐ ๋ ๋๋ง์ ํ ์คํธํ๋ ๋ฐ ํนํ ๊ฐ๋ ฅํฉ๋๋ค.cypress-axe์ ํจ๊ปํ๋ Cypress: ์ธ๊ธฐ ์๋ ์ข ๋จ ๊ฐ(end-to-end) ํ ์คํธ ํ๋ ์์ํฌ์ธ Cypress๋cypress-axe๋ก ํ์ฅํ์ฌ E2E ํ ์คํธ ์ค์ํธ์ ์ผ๋ถ๋ก ์ ๊ทผ์ฑ ๊ฐ์ฌ๋ฅผ ์ํํ ์ ์์ต๋๋ค.- Playwright: Playwright์๋ ๊ธฐ๋ณธ ์ ๊ทผ์ฑ ์ง์์ด ์์ผ๋ฉฐ axe-core์ ๊ฐ์ ๋๊ตฌ์ ํตํฉ๋ ์ ์์ต๋๋ค.
์: `jest-axe๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฌ๋ ฅ์ ๋ด๋ถ ๊ตฌ์กฐ์ ์ ์ ํ ARIA ์ญํ ์ด ์๊ณ ๋ํํ ๋ ์ง ์
์ด ํค๋ณด๋ ์ด์ฉ ๊ฐ๋ฅํ์ง ์๋์ผ๋ก ํ์ธํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ปดํฌ๋ํธ ๋์๊ณผ ์ ๊ทผ์ฑ ์ํฅ์ ๋ํ ์ ํํ ํ
์คํธ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
2. Shadow DOM ์ธ์ ๋๊ตฌ ํ์ฉ
์น ์ปดํฌ๋ํธ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ํ ์คํธํ๋ ์ด์ ๋ shadow DOM์ ์ดํดํ๊ณ ํ์ํ ์ ์๋ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค. axe-core์ ๊ฐ์ ๋๊ตฌ๋ ์ด๋ฅผ ์ผ๋์ ๋๊ณ ์ค๊ณ๋์์ต๋๋ค. ์ด๋ฌํ ๋๊ตฌ๋ ํ๊ฐ ์คํฌ๋ฆฝํธ๋ฅผ shadow root์ ํจ๊ณผ์ ์ผ๋ก ์ฃผ์ ํ๊ณ light DOM๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ํด๋น ์ฝํ ์ธ ๋ฅผ ๋ถ์ํ ์ ์์ต๋๋ค.
๋๊ตฌ๋ฅผ ์ ํํ ๋ ํญ์ shadow DOM ์ง์์ ๋ํ ์ค๋ช ์๋ฅผ ํ์ธํ์ญ์์ค. ์๋ฅผ ๋ค์ด, light DOM ์ํ๋ง ์ํํ๋ ๋๊ตฌ๋ ์น ์ปดํฌ๋ํธ์ shadow DOM ๋ด์ ์ค์ํ ์ ๊ทผ์ฑ ๋ฌธ์ ๋ฅผ ๋์น ๊ฒ์ ๋๋ค.
3. ์ปดํฌ๋ํธ ์ํ ๋ฐ ์ํธ ์์ฉ ํ ์คํธ
์น ์ปดํฌ๋ํธ๋ ๊ฑฐ์ ์ ์ ์ด์ง ์์ต๋๋ค. ์ฌ์ฉ์ ์ํธ ์์ฉ ๋ฐ ๋ฐ์ดํฐ์ ๋ฐ๋ผ ๋ชจ์๊ณผ ๋์์ด ๋ณ๊ฒฝ๋ฉ๋๋ค. ์๋ํ๋ ํ ์คํธ๋ ์ด๋ฌํ ์ํ๋ฅผ ์๋ฎฌ๋ ์ด์ ํด์ผ ํฉ๋๋ค.
- ์ฌ์ฉ์ ์ํธ ์์ฉ ์๋ฎฌ๋ ์ด์ : Cypress ๋๋ Playwright์ ๊ฐ์ ํ ์คํธ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ ์น ์ปดํฌ๋ํธ์์ ํด๋ฆญ, ํค ์ ๋ ฅ ๋ฐ ํฌ์ปค์ค ๋ณ๊ฒฝ์ ์๋ฎฌ๋ ์ด์ ํฉ๋๋ค.
- ๋ค์ํ ๋ฐ์ดํฐ ์๋๋ฆฌ์ค ํ ์คํธ: ์ปดํฌ๋ํธ๊ฐ ๋ค์ํ ์ ํ์ ์ฝํ ์ธ ๋ฅผ ํ์ํ๊ฑฐ๋ ์ฃ์ง ์ผ์ด์ค๋ฅผ ์ฒ๋ฆฌํ ๋ ์ ๊ทผ์ฑ์ด ์ ์ง๋๋๋ก ํฉ๋๋ค.
- ๋์ ์ฝํ ์ธ ํ ์คํธ: ์ปดํฌ๋ํธ์ ์ ์ฝํ ์ธ ๊ฐ ์ถ๊ฐ๋๊ฑฐ๋ ์ ๊ฑฐ๋ ๋(์: ์ค๋ฅ ๋ฉ์์ง, ๋ก๋ฉ ์ํ) ์ ๊ทผ์ฑ์ด ์ ์ง๋๊ณ ํฌ์ปค์ค๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ๊ด๋ฆฌ๋๋์ง ํ์ธํฉ๋๋ค.
์: `cypress-axe๋ ํฌ์ปค์ค๊ฐ ๊ด๋ฆฌ๋๊ณ , ๊ฒฐ๊ณผ๊ฐ ์คํฌ๋ฆฐ ๋ฆฌ๋์ ์ํด ๋ฐํ๋๋ฉฐ(ํด๋นํ๋ ๊ฒฝ์ฐ), ๋ํํ ์์๊ฐ ์ ๊ทผ ๊ฐ๋ฅํ๊ฒ ์ ์ง๋๋์ง ํ์ธํ๊ธฐ ์ํด ์ ๊ทผ์ฑ ๊ฒ์ฌ๋ฅผ ์คํํ ์ ์์ต๋๋ค.
4. ์น ์ปดํฌ๋ํธ์์ ARIA์ ์ญํ
์ฌ์ฉ์ ์ ์ ์์๋ ๊ธฐ๋ณธ HTML ์์์ ๊ฐ์ ๊ณ ์ ํ ์๋ฏธ๋ก ์ ๊ฐ์ง์ง ์์ผ๋ฏ๋ก ARIA(Accessible Rich Internet Applications) ์์ฑ์ ๋ณด์กฐ ๊ธฐ์ ์ ์ญํ , ์ํ ๋ฐ ์์ฑ์ ์ ๋ฌํ๋ ๋ฐ ํ์์ ์ ๋๋ค. ์๋ํ๋ ํ ์คํธ๋ ์ด๋ฌํ ์์ฑ์ ์กด์ฌ์ ์ ํ์ฑ์ ํ์ธํ ์ ์์ต๋๋ค.
- ARIA ์ญํ ํ์ธ: ์ฌ์ฉ์ ์ ์ ์์์ ์ ์ ํ ์ญํ (์: ๋ชจ๋ฌ์ ๊ฒฝ์ฐ
role="dialog")์ด ์๋์ง ํ์ธํฉ๋๋ค. - ARIA ์ํ ๋ฐ ์์ฑ ํ์ธ:
aria-expanded,aria-haspopup,aria-label,aria-labelledby,aria-describedby์ ๊ฐ์ ์์ฑ์ ๊ฒ์ฆํฉ๋๋ค. - ์์ฑ ์ญ๋์ฑ ๋ณด์ฅ: ARIA ์์ฑ์ด ์ปดํฌ๋ํธ ์ํ์ ๋ฐ๋ผ ๋ณ๊ฒฝ๋๋ฉด ์๋ํ๋ ํ ์คํธ์์ ์ด๋ฌํ ์ ๋ฐ์ดํธ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌํ๋์๋์ง ํ์ธํด์ผ ํฉ๋๋ค.
์: `aria-expanded์ ๊ฐ์ ARIA ์์ฑ์ ์ฌ์ฉํ์ฌ ์ฝํ
์ธ ๊ฐ ํ์๋๋์ง ์ฌ๋ถ๋ฅผ ๋ํ๋ผ ์ ์์ต๋๋ค. ์๋ํ๋ ํ
์คํธ๋ ํจ๋์ด ํ์ฅ๋ ๋ ์ด ์์ฑ์ด true๋ก, ์ถ์๋ ๋ false๋ก ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ ๋์๋์ง ํ์ธํ ์ ์์ต๋๋ค. ์ด ์ ๋ณด๋ ์คํฌ๋ฆฐ ๋ฆฌ๋ ์ฌ์ฉ์๊ฐ ํจ๋์ ์ํ๋ฅผ ์ดํดํ๋ ๋ฐ ์ค์ํฉ๋๋ค.
5. CI/CD ํ์ดํ๋ผ์ธ์ ์ ๊ทผ์ฑ
์๋ํ๋ ์ ๊ทผ์ฑ ํ ์คํธ๋ฅผ ์ง์์ ํตํฉ/์ง์์ ๋ฐฐํฌ(CI/CD) ํ์ดํ๋ผ์ธ์ ํตํฉํ๋ ๊ฒ์ ๊ฐ๋ฐ ํ๋ก์ธ์ค์ ์ ๋์ ์ธ ์ธก๋ฉด์ผ๋ก ์ ๊ทผ์ฑ์ ์ ์งํ๋ ๋ฐ ์ค์ํฉ๋๋ค.
- ์ปค๋ฐ/ํ ์์ฒญ ์ ์๋ํ๋ ์ค์บ: ์ฝ๋๋ฅผ ํธ์ํ๊ฑฐ๋ ํ ์์ฒญ์ ์ด ๋๋ง๋ค CLI ๊ธฐ๋ฐ ์ ๊ทผ์ฑ ๋๊ตฌ(axe-core CLI ๋๋ Pa11y์ ๊ฐ์)๋ฅผ ์คํํ๋๋ก ํ์ดํ๋ผ์ธ์ ๊ตฌ์ฑํฉ๋๋ค.
- ์น๋ช ์ ์ธ ์๋ฐ ์ ๋น๋ ์คํจ: ์ ์๋ ์๊ณ๊ฐ์ ์น๋ช ์ ๋๋ ์ฌ๊ฐํ ์ ๊ทผ์ฑ ์๋ฐ์ด ๊ฐ์ง๋๋ฉด ํ์ดํ๋ผ์ธ์ด ์๋์ผ๋ก ์คํจํ๋๋ก ์ค์ ํฉ๋๋ค. ์ด๋ฅผ ํตํด ๊ท์ ์ ์ค์ํ์ง ์๋ ์ฝ๋๊ฐ ํ๋ก๋์ ์ ๋๋ฌํ๋ ๊ฒ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
- ๋ณด๊ณ ์ ์์ฑ: ๊ฐ๋ฐ ํ์ด ๊ฒํ ํ ์ ์๋ ์์ธํ ์ ๊ทผ์ฑ ๋ณด๊ณ ์๋ฅผ ํ์ดํ๋ผ์ธ์ด ์์ฑํ๋๋ก ํฉ๋๋ค.
- ์ด์ ์ถ์ ๊ธฐ ํตํฉ: ์๋ณ๋ ๋ชจ๋ ์ ๊ทผ์ฑ ๋ฌธ์ ์ ๋ํด ํ๋ก์ ํธ ๊ด๋ฆฌ ๋๊ตฌ(Jira ๋๋ Asana์ ๊ฐ์)์ ์๋์ผ๋ก ํฐ์ผ์ ์์ฑํฉ๋๋ค.
์: ๊ธ๋ก๋ฒ ์ ์ ์๊ฑฐ๋ ํ๋ซํผ์ ๊ฐ๋ฐํ๋ ํ์ฌ๋ ๋จ์ ํ ์คํธ๋ฅผ ์คํํ๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น๋ํ๊ณ , ๋ง์ง๋ง์ผ๋ก axe-core์ ํจ๊ป ์ ๊ทผ์ฑ ๊ฒ์ฌ๋ฅผ ํฌํจํ๋ Playwright๋ฅผ ์ฌ์ฉํ์ฌ ์ผ๋ จ์ E2E ํ ์คํธ๋ฅผ ์คํํ๋ CI ํ์ดํ๋ผ์ธ์ ๊ฐ์ง ์ ์์ต๋๋ค. ์ด๋ฌํ ๊ฒ์ฌ ์ค ํ๋๋ผ๋ ์ ์น ์ปดํฌ๋ํธ์ ์ ๊ทผ์ฑ ์๋ฐ์ผ๋ก ์คํจํ๋ฉด ํ์ดํ๋ผ์ธ์ด ์ค๋จ๋๊ณ ๊ฐ๋ฐ ํ์ ์๋ฆผ์ด ์ ์ก๋๋ฉฐ ์์ธํ ์ ๊ทผ์ฑ ๋ณด๊ณ ์ ๋งํฌ๊ฐ ์ ๊ณต๋ฉ๋๋ค.
์๋ํ๋ฅผ ๋์ด์: ์ธ๊ฐ์ ์์
์๋ํ๋ ํ ์คํธ๋ ๊ฐ๋ ฅํ์ง๋ง ๋ง๋ณํต์น์ฝ์ ์๋๋๋ค. ์๋ํ๋ ๋๊ตฌ๋ ์ผ๋ฐ์ ์ธ ์ ๊ทผ์ฑ ๋ฌธ์ ์ ์ฝ 30-50%๋ฅผ ๊ฐ์งํ ์ ์์ต๋๋ค. ๋ณต์กํ ๋ฌธ์ ๋ ์ข ์ข ์๋ ํ ์คํธ์ ์ฌ์ฉ์ ์๊ตฌ ์ฌํญ์ ๋ํ ์ดํด๊ฐ ํ์ํฉ๋๋ค.
- ์๋ ํค๋ณด๋ ํ ์คํธ: ๋ชจ๋ ๋ํํ ์์๊ฐ ๋๋ฌ ๊ฐ๋ฅํ๊ณ ์ด์ฉ ๊ฐ๋ฅํ์ง ํ์ธํ๊ธฐ ์ํด ํค๋ณด๋๋ง ์ฌ์ฉํ์ฌ ์น ์ปดํฌ๋ํธ๋ฅผ ํ์ํฉ๋๋ค.
- ์คํฌ๋ฆฐ ๋ฆฌ๋ ํ ์คํธ: ์ธ๊ธฐ ์๋ ์คํฌ๋ฆฐ ๋ฆฌ๋(์: NVDA, JAWS, VoiceOver)๋ฅผ ์ฌ์ฉํ์ฌ ์๊ฐ ์ฅ์ ๊ฐ ์๋ ์ฌ์ฉ์๊ฐ ์น ์ปดํฌ๋ํธ๋ฅผ ๊ฒฝํํ๋ ๋ฐฉ์์ ์ฒดํํฉ๋๋ค.
- ์ฌ์ฉ์ ํ ์คํธ: ๋ค์ํ ์ฅ์ ๋ฅผ ๊ฐ์ง ์ฌ์ฉ์๋ฅผ ํ ์คํธ ํ๋ก์ธ์ค์ ์ฐธ์ฌ์ํต๋๋ค. ๊ทธ๋ค์ ์ค์ ๊ฒฝํ์ ์๋ํ๋ ๋๊ตฌ๋ ์ ๋ฌธ๊ฐ ํ ์คํฐ์กฐ์ฐจ ๋์น ์ ์๋ ์ฌ์ฉ์ฑ ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค.
- ๋งฅ๋ฝ ๊ฒํ : ์น ์ปดํฌ๋ํธ๊ฐ ๋ ๋์ ์ ํ๋ฆฌ์ผ์ด์ ๋งฅ๋ฝ์ ํตํฉ๋ ๋ ์ด๋ป๊ฒ ์๋ํ๋์ง ํ๊ฐํฉ๋๋ค. ๋ ๋ฆฝ์ ์ผ๋ก๋ ์ ๊ทผ์ฑ์ด ์๋ฒฝํ ์ ์์ง๋ง ๋ค๋ฅธ ์์์ ํจ๊ป ๋๋ ๋ณต์กํ ์ฌ์ฉ์ ํ๋ฆ ๋ด์์๋ ๋ฌธ์ ๊ฐ ๋ ์ ์์ต๋๋ค.
ํฌ๊ด์ ์ธ ์ ๊ทผ์ฑ ์ ๋ต์ ํญ์ ์ฒ ์ ํ ์๋ ๊ฒํ ๋ฐ ์ฌ์ฉ์ ํผ๋๋ฐฑ๊ณผ ๊ฐ๋ ฅํ ์๋ํ ํ ์คํธ๋ฅผ ๊ฒฐํฉํฉ๋๋ค. ์ด ์ ์ฒด์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ์น ์ปดํฌ๋ํธ๊ฐ ๊ท์ ์ ์ค์ํ ๋ฟ๋ง ์๋๋ผ ๋ชจ๋ ์ฌ๋์ด ์ค์ ๋ก ์ฌ์ฉํ ์ ์๋๋ก ๋ณด์ฅํฉ๋๋ค.
๊ธ๋ก๋ฒ ๋๋ฌ์ ์ํ ์ฌ๋ฐ๋ฅธ ๋๊ตฌ ์ ํ
์๋ํ๋ ํ ์คํธ ๋๊ตฌ๋ฅผ ์ ํํ ๋ ๋ค์์ ๊ณ ๋ คํ์ญ์์ค.
- Shadow DOM ์ง์: ์น ์ปดํฌ๋ํธ์ ๊ฒฝ์ฐ ์ด๊ฒ์ด ๊ฐ์ฅ ์ค์ํฉ๋๋ค.
- WCAG ๊ท์ ์ค์ ์์ค: ๋๊ตฌ๊ฐ ์ต์ WCAG ํ์ค(์: WCAG 2.1 AA)์ ํ ์คํธํ๋์ง ํ์ธํฉ๋๋ค.
- ํตํฉ ๊ธฐ๋ฅ: ๊ธฐ์กด ๊ฐ๋ฐ ์ํฌํ๋ก ๋ฐ CI/CD ํ์ดํ๋ผ์ธ์ ์ผ๋ง๋ ์ ๋ง๋๊ฐ?
- ๋ณด๊ณ ํ์ง: ๋ณด๊ณ ์๊ฐ ๋ช ํํ๊ณ ์คํ ๊ฐ๋ฅํ๋ฉฐ ๊ฐ๋ฐ์๊ฐ ์ดํดํ๊ธฐ ์ฌ์ด๊ฐ?
- ์ปค๋ฎค๋ํฐ ๋ฐ ์ง์: ๋ฌธ์ ํด๊ฒฐ์ ๋๋ ํ๋ฐํ ์ปค๋ฎค๋ํฐ ๋๋ ์ข์ ๋ฌธ์๊ฐ ์๋๊ฐ?
- ์ธ์ด ์ง์: ๋๊ตฌ ์์ฒด๋ ์์ด์ผ ์ ์์ง๋ง, ์ ์ธ๊ณ ์ฌ์ฉ์๊ฐ ์ํธ ์์ฉํ ์ธ์ด์ ์ฝํ ์ธ ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ํด์ํ๊ณ ํ ์คํธํ ์ ์๋์ง ํ์ธํฉ๋๋ค.
์ ๊ทผ์ฑ ๋์ ์น ์ปดํฌ๋ํธ ๊ฐ๋ฐ์ ์ํ ๋ชจ๋ฒ ์ฌ๋ก
์ ๊ทผ์ฑ ํ ์คํธ๋ฅผ ๋ ํจ๊ณผ์ ์ผ๋ก ๋ง๋ค๊ณ ๋ฐ๊ฒฌ๋๋ ๋ฌธ์ ์๋ฅผ ์ค์ด๋ ค๋ฉด ๋ค์ ๊ฐ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๋ฅด์ญ์์ค.
- ์๋ฏธ๋ก ์์: ๊ฐ๋ฅํ ํ ๊ธฐ๋ณธ HTML ์์๋ฅผ ์ฌ์ฉํ์ญ์์ค. ์ฌ์ฉ์ ์ ์ ์์๋ฅผ ๋ง๋ค์ด์ผ ํ๋ ๊ฒฝ์ฐ ๋ชฉ์ ๊ณผ ์ํ๋ฅผ ์ ๋ฌํ๊ธฐ ์ํด ์ ์ ํ ARIA ์ญํ ๊ณผ ์์ฑ์ด ์๋์ง ํ์ธํ์ญ์์ค.
- ์ ์ง์ ํฅ์: ํต์ฌ ๊ธฐ๋ฅ๊ณผ ์ ๊ทผ์ฑ์ ์ค์ ์ ๋๊ณ ์ปดํฌ๋ํธ๋ฅผ ๊ตฌ์ถํ ๋ค์ ํฅ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด JavaScript ์ค๋ฅ ๋๋ ๋ณด์กฐ ๊ธฐ์ ์ ์ ํ ์ฌํญ์ด ์๋ ๊ฒฝ์ฐ์๋ ๊ธฐ๋ณธ ์ฌ์ฉ์ฑ์ด ๋ณด์ฅ๋ฉ๋๋ค.
- ๋ช
ํํ๊ณ ๊ฐ๊ฒฐํ ๋ ์ด๋ธ: ์ปดํฌ๋ํธ ๋ด์ ๋ชจ๋ ๋ํํ ์์(๋ฒํผ, ๋งํฌ, ์์ ์
๋ ฅ)์๋ ํ์๋๋ ํ
์คํธ ๋๋ ARIA ์์ฑ(
aria-label,aria-labelledby)์ ํตํด ๋ช ํํ๊ณ ์ค๋ช ์ ์ธ ๋ ์ด๋ธ์ด ์์ด์ผ ํฉ๋๋ค. - ํฌ์ปค์ค ๊ด๋ฆฌ: ํนํ ๋ชจ๋ฌ, ํ์ค๋ฒ ๋ฐ ๋์ ์ผ๋ก ์์ฑ๋ ์ฝํ ์ธ ์ ๋ํด ์ฌ๋ฐ๋ฅธ ํฌ์ปค์ค ๊ด๋ฆฌ๋ฅผ ๊ตฌํํฉ๋๋ค. ํฌ์ปค์ค๊ฐ ๋ ผ๋ฆฌ์ ์ผ๋ก ์ด๋ํ๊ณ ์ ์ ํ๊ฒ ๋ฐํ๋๋๋ก ํฉ๋๋ค.
- ์์ ๋๋น: ํ ์คํธ ๋ฐ ๋ํํ ์์์ ๋ํ WCAG์ ์์ ๋๋น ๋น์จ ์๊ตฌ ์ฌํญ์ ์ค์ํฉ๋๋ค.
- ํค๋ณด๋ ์ด์ฉ์ฑ: ํค๋ณด๋๋ฅผ ์ฌ์ฉํ์ฌ ์์ ํ ํ์ํ๊ณ ์ด์ฉํ ์ ์๋๋ก ์ปดํฌ๋ํธ๋ฅผ ์ค๊ณํฉ๋๋ค.
- ์ ๊ทผ์ฑ ๊ธฐ๋ฅ ๋ฌธ์ํ: ๋ณต์กํ ์ปดํฌ๋ํธ์ ๊ฒฝ์ฐ ์ ๊ทผ์ฑ ๊ธฐ๋ฅ ๋ฐ ์๋ ค์ง ์ ํ ์ฌํญ์ ๋ฌธ์ํํฉ๋๋ค.
๊ฒฐ๋ก
์น ์ปดํฌ๋ํธ๋ ํ๋์ ์ด๊ณ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ UI๋ฅผ ๊ตฌ์ถํ๋ ๋ฐ ์์ฒญ๋ ๊ฐ๋ ฅํจ๊ณผ ์ ์ฐ์ฑ์ ์ ๊ณตํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ ๊ทผ์ฑ์ ์๋์ ์ด๊ณ ์ง์์ ์ธ ๋ ธ๋ ฅ์ด์ด์ผ ํฉ๋๋ค. shadow DOM ๋ฐ ์ปดํฌ๋ํธ ์๋ช ์ฃผ๊ธฐ์ ๋ณต์ก์ฑ์ ์ดํดํ๋ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ ์๋ํ๋ ์ ๊ทผ์ฑ ํ ์คํธ๋ WCAG์ ๊ฐ์ ๊ธ๋ก๋ฒ ํ์ค์ ๋ํ ๊ท์ ์ค์๋ฅผ ํ์ธํ๋ ํ์ ์ ๋ต์ ๋๋ค. ์ด๋ฌํ ๋๊ตฌ๋ฅผ ๊ฐ๋ฐ ์ํฌํ๋ก์ ํตํฉํ๊ณ , shadow DOM ์ธ์ ํ ์คํธ์ ์ง์คํ๊ณ , ์๋ํ์ ์๋ ๊ฒํ ๋ฐ ์ฌ์ฉ์ ํผ๋๋ฐฑ์ ๋ณด์ํจ์ผ๋ก์จ ๊ฐ๋ฐ ํ์ ์น ์ปดํฌ๋ํธ๊ฐ ๋ค์ํ ๊ตญ์ ์ฌ์ฉ์ ๊ธฐ๋ฐ์ ๋ํด ํฌ๊ด์ ์ด๊ณ ์ฌ์ฉ ๊ฐ๋ฅํ๋ฉฐ ๊ท์ ์ ์ค์ํ๋๋ก ๋ณด์ฅํ ์ ์์ต๋๋ค.
์๋ํ๋ ์ ๊ทผ์ฑ ํ ์คํธ๋ฅผ ์์ฉํ๋ ๊ฒ์ ๋จ์ํ ๊ท์ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋ ๊ฒ์ด ์๋๋ผ ๋ชจ๋ ์ฌ๋์ ์ํ ๋ณด๋ค ๊ณตํํ๊ณ ์ ๊ทผ์ฑ ๋์ ๋์งํธ ๋ฏธ๋๋ฅผ ๊ตฌ์ถํ๋ ๊ฒ์ ๋๋ค.