μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- λ΄μ₯κ³ μ°¨ν¨μ
- variable#function
- @redux-toolkit
- https://lo-victoria.com/introduction-to-redux-toolkit-for-beginners
- removeCookie
- μλ°μ€ν¬λ¦½νΈ
- react
- cmarket
- μλ°μ€ν¬λ¦½νΈ#JS#var#let#const#undefined#null
- JS#3μΌμ°¨λ¬λ¦¬μ#μ΄λ°μΈλ°#μκ°κΈλ°©~
- reduxμνμ μ§
- https://dasima.xyz/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%A0%9C%EA%B3%B1-math-pow-%EA%B3%84%EC%82%B0/
- Beesbeesbees
- ν·κ°λ¦°λ€~
- λ Έλκ΅κ³Όμ
- μλ°μ€ν¬λ¦½νΈ#쑰건문#λ¬Έμμ΄
- toString#String
- https://developer-talk.tistory.com/299
- for~in/for~of
- γ·γ
- User Flow
- dom
- js
- UX
- UI
- μλ°μ€ν¬λ¦½νΈ#JS#slice#splice
- children vs childrenNodes
- slice/splice/split
- CSS
- https://www.daleseo.com/js-array-slice-splice/
- Today
- Total
Daily Front_Minhhk
μΉ μ κ·Όμ±, WAI-ARIA λ³Έλ¬Έ
π‘ μΉ μ κ·Όμ±(Web Accessibility)
μΌλ°μ μΌλ‘ μΉ μ κ·Όμ±μ μ₯μ μΈ, κ³ λ Ήμ λ±μ΄ μΉ μ¬μ΄νΈμμ μ 곡νλ μ 보μ
λΉμ₯μ μΈκ³Ό λλ±νκ² μ κ·Όνκ³ μ΄ν΄ν μ μλλ‘ λ³΄μ₯νλ κ²μ λ»ν©λλ€.
μΉ μ κ·Όμ±μ κ°μΆλ©΄ μ»μ μ μλ ν¨κ³Ό
1. μ¬μ©μμΈ΅ νλ
μΉ μ κ·Όμ±μ ν보νλ©΄ μ₯μ μΈ, κ³ λ Ήμ λ± μ 보 μμΈ κ³μΈ΅λ μΉ μ¬μ΄νΈλ₯Ό μμ λ‘κ² μ΄μ©ν μ μκ² λ©λλ€.
κ·Έλ§νΌ μ¬μ΄νΈμ μ΄μ©μλ₯Ό λ릴 μ μκ³ , μλ‘μ΄ κ³ κ°μΈ΅μ ν보ν μ μκ² λ©λλ€.
μ€μ λ‘ μΉ μ κ·Όμ± ν₯μμ ν΅ν΄ 맀μΆμ΄ μ¦κ°ν μΈκ΅ μΌνλͺ° μ¬λ‘λ μμΌλ©°, κ΅λ΄ μ¨λΌμΈ μΌνλͺ°μμλ λ Έλ μΈ΅μ 맀μΆμ΄ μ¦κ° μΆμΈλ₯Ό 보μ΄κ³ μμ΅λλ€.
2. λ€μν νκ²½ μ§μ
μμ μ΄μΌκΈ° νλ― μ 보 μμΈ κ³μΈ΅μ΄ μλλλΌλ μ 보μ μ κ·ΌνκΈ° μ΄λ €μ΄ μν©μ μ²ν μ μμ΅λλ€.
μ΄μ μ€μ΄λΌ νλ©΄μ 보기 μ΄λ ΅κ±°λ, λ§μ°μ€λ₯Ό μ¬μ©ν μ μλ μν© λ±μ΄ μμ΅λλ€.
μΉ μ κ·Όμ±μ ν₯μμν€λ©΄ λ€μν νκ²½, λ€μν κΈ°κΈ°μμμ μΉ μ¬μ΄νΈλ₯Ό μμ λ‘κ² μ¬μ©ν μ μκ² λλ―λ‘ μλΉμ€μ μ¬μ© λ²μκ° νλλ©λλ€.
μμ°μ€λ½κ² μλΉμ€μ μ΄μ©μ μ μ¦κ°λ₯Ό κΈ°λν μ μμ΅λλ€.
3. μ¬νμ μ΄λ―Έμ§ ν₯μ
κΈ°μ μ μ¬νμ μ± μμ λν μ€μμ±μ΄ μ μ μ¦κ°νκ³ μλ μν©μμ, μΉ μ κ·Όμ± ν보λ₯Ό ν΅ν΄ κΈ°μ μ΄ μ 보 μμΈ κ³μΈ΅μ μν μ¬ν 곡ν λ° λ³΅μ§ ν₯μμ νμ°κ³ μμμ 보μ¬μ€ μ μμ΅λλ€.
κΈ°μ μ μ¬νμ μ΄λ―Έμ§κ° ν₯μλλ©΄ κ·Έλ§νΌ μ΄μ©μ μμ μ¦κ°λ λ¬Όλ‘ μΆ©μ± κ³ κ°μ ν보ν μ μλ κ°λ₯μ±μ΄ λμ΄λκ² λ©λλ€.
ππ» μΈμμ μ©μ΄μ±
ππ» μ΄μ©μ μ©μ΄μ±
ππ» μ΄ν΄μ μ©μ΄μ±
π€π» κ²¬κ³ μ±
βοΈ μΈμμ μ©μ΄μ±(Perceivable)
: λͺ¨λ μ½ν μΈ λ μ¬μ©μκ° μΈμν μ μμ΄μΌ νλ€.
1. μ μ ν λ체 ν μ€νΈ
: ν μ€νΈκ° μλ μ½ν μΈ λ κ·Έ μλ―Έλ μ©λλ₯Ό μ΄ν΄ν μ μλλ‘ λ체 ν μ€νΈλ₯Ό μ 곡ν΄μΌ νλ€.
- μκ°μ μΌλ‘ νλ©΄μ μΈμν μ μλ μ¬μ©μ νΉμ μν©μ λλΉν΄μ λ체 ν
μ€νΈλ₯Ό μ 곡ν νμκ° μμ΅λλ€.
- alt μμ± μ¬μ©νκΈ°
- <img src="μ΄λ―Έμ§ μ£Όμ" alt="λ체 ν μ€νΈ" />
- λ°°κ²½ μ΄λ―Έμ§μ κ°μ΄ μ 보λ₯Ό μΈμν νμκ° μλ κ²½μ°μλ alt κ°μΌλ‘ λΉ λ¬Έμμ΄μ μ£Όμ΄ μ€ν¬λ¦° 리λκ° μΈμνμ§ μκ² ν©λλ€.
- μ 보 μ λ¬μ΄ νμν μ½ν μΈ μ λΉ λ¬Έμμ΄μ μ λ ₯ν κ²½μ° ν΄λΉ μ½ν μΈ μ μ‘΄μ¬ μ체λ μΈμνμ§ λͺ»νκ² λλ―λ‘ μ£Όμν΄μΌ ν©λλ€.
- μΈμ μμμ λ΄μ©μμ μ΄λ―Έμ§μ μ 보λ₯Ό μΆ©λΆν μΈμ§ν μ μλ κ²½μ°μλ alt κ°μΌλ‘ λΉ λ¬Έμμ΄μ μ£Όλ κ²μ΄ μ’μ΅λλ€. μ΄ κ²½μ°μλ λ체 ν μ€νΈλ₯Ό μμ±ν κ²½μ° μ΄λ―Έμ§ μ 보λ₯Ό μ€λ³΅ν΄μ μ 곡νκ² λ©λλ€.
2. μλ§ μ 곡
: λ©ν°λ―Έλμ΄ μ½ν μΈ μλ μλ§, μκ³ λλ μνλ₯Ό μ 곡ν΄μΌ νλ€.
- μλ§μ ν¬ν¨ν λμμ μ¬μ©νκΈ°
- μλ§μ μ§μνλ λ©ν°λ―Έλμ΄ νλ«νΌ μ¬μ©νκΈ°
- λΉλμ€ μμ μμͺ½μ track μμλ₯Ό μ¬μ©νμ¬ μλ§ νμΌ λΆλ¬μ€κΈ°
- WebVTT(Web Video Text Tracks, .vtt νμΌ) λλ Timed Text Markup Language(TTML)νμμ μ¬μ©ν΄μΌ ν©λλ€.
- <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 μμ±μ μ¬μ©νμ¬ μμ±ν©λλ€.
- ν
μ΄λΈ μμ μμ caption μμλ₯Ό μ¬μ©ν΄μ νμ μ λͺ©μ μ 곡νκΈ°
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λ₯Ό μ¬μ©νλ©΄ μΉ μ κ·Όμ±μ ν¨κ³Όμ μΌλ‘ ν₯μμν¬ μ μμ΅λλ€.
- μλ§¨ν± μμλ§μΌλ‘ μλ―Έλ₯Ό μΆ©λΆν λΆμ¬ν μ μλ μν©μ WAI-ARIAλ₯Ό μ¬μ©νλ©΄ HTML μμμ μΆκ°μ μΈ μλ―Έλ₯Ό λΆμ¬νμ¬ λ μννκ² νμ΄μ§λ₯Ό νμ ν μ μκ² λμμ€λλ€.
- ‘μλ§¨ν± μμλ§μΌλ‘ μλ―Έλ₯Ό μΆ©λΆν λΆμ¬ν μ μλ μν©’μ΄λΌλ κ²μ μλ§¨ν± μμλ§μΌλ‘ μΆ©λΆν μν©μμλ WAI-ARIAλ₯Ό μ¬μ©νμ§ μμμΌ νλ€λ μλ―Έμ λλ€. WAI-ARIAλ 보쑰μ μΈ μν λ‘λ§ μ¬μ©ν΄μΌ ν©λλ€. WAI-ARIAλ₯Ό λ¨μ©ν΄μ μ λλ©°, μ맨ν±ν HTMLμ μμ±νλ κ²μ΄ μ΅μ°μ μ λλ€.
- 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)κ° μμ΅λλ€.
- polite : μ€ν¬λ¦° 리λκ° νμ¬ μ½κ³ μλ λ΄μ©μ λͺ¨λ μ½κ³ λμ κ°±μ λ λ΄μ©μ μ¬μ©μμκ² μ λ¬ν©λλ€.
- 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 |