Skip to content

Commit

Permalink
docs: 0317/aria-hidden-and-role
Browse files Browse the repository at this point in the history
  • Loading branch information
iyu88 committed Mar 17, 2024
1 parent ed840c6 commit 99d9083
Show file tree
Hide file tree
Showing 13 changed files with 955 additions and 18 deletions.
51 changes: 51 additions & 0 deletions _posts/2024-03-17-aria-hidden-and-role.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
---
layout: post
title: "[A11y] aria-hidden='true'와 aria-role='none'"
date: 2024-03-17 00:00:00
author: Hyunbin Lee
categories: A11y
tags: Accessibility A11y
cover: "/assets/instacode.png"
---

# aria-hidden='true'와 aria-role='none'

## 1. aria-hidden='true'

aria-hidden 속성은 μš”μ†Œλ₯Ό [μ ‘κ·Όμ„± 트리](https://developer.mozilla.org/ko/docs/Glossary/Accessibility_tree)μ—μ„œ μ œκ±°ν•  지 μ—¬λΆ€λ₯Ό κ²°μ •ν•©λ‹ˆλ‹€. `aria-hidden='true'`둜 μ„€μ •ν•˜λ©΄ ν•΄λ‹Ή μš”μ†Œκ°€ μ ‘κ·Όμ„± νŠΈλ¦¬μ— λ…ΈμΆœλ˜μ§€ μ•Šμ„ 뿐만 μ•„λ‹ˆλΌ μžμ‹ μš”μ†Œλ“€λ„ λͺ¨λ‘ 영ν–₯ λ°›μ•„ μ‚¬λΌμ§€κ²Œ λ©λ‹ˆλ‹€. μ΄λ ‡κ²Œ μ ‘κ·Όμ„± νŠΈλ¦¬μ—μ„œ 사라지면 슀크린 리더 λ“± 접근성을 μ§€μ›ν•˜λŠ” 보쑰 기술의 도움을 받을 수 μ—†μŠ΅λ‹ˆλ‹€.

aria-hidden 속성은 μ‹œκ°μ μΈ λ Œλ”μ™€λŠ” 직접적인 연관이 μ—†μŠ΅λ‹ˆλ‹€. **λ‹€λ§Œ μ •μƒμ μœΌλ‘œ λ Œλ”λ§λœ μš”μ†Œλ₯Ό λ¬΄ν„±λŒ€κ³  aria-hidden='true'둜 μ„€μ •ν•˜λŠ” 것은 지양해야 ν•©λ‹ˆλ‹€.** μ™œλƒν•˜λ©΄ μ‹œκ°μ μœΌλ‘œ νŒŒμ•…ν•  수 μžˆλŠ” 정보λ₯Ό 슀크린 λ¦¬λ”μ˜ 도움을 받을 수 μ—†κ²Œ λ˜μ–΄ 보쑰 기술 μ‚¬μš©μžμ˜ μ‚¬μš©μ„±μ„ μ €ν•˜μ‹œν‚¬ 수 있기 λ•Œλ¬Έμž…λ‹ˆλ‹€. λ”°λΌμ„œ λΆˆν•„μš”ν•˜λ‹€κ³  νŒλ‹¨λ˜κ±°λ‚˜ μ€‘λ³΅λ˜λŠ” 정보에 ν•œν•΄μ„œ μ„€μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.

<br />

## 2. aria-role='none'

aria-role 속성은 μš”μ†Œμ— 역할을 λͺ…μ‹œν•˜μ—¬ μ½˜ν…μΈ μ— 의미(semantic meaning)λ₯Ό λΆ€μ—¬ν•©λ‹ˆλ‹€. μ΄λ ‡κ²Œ μ˜λ―Έκ°€ λΆ€μ—¬λœ μš”μ†ŒλŠ” 슀크린 리더 λ“± 보쑰 기술 μ‚¬μš©μžκ°€ ν•΄λ‹Ή μš”μ†Œμ˜ 의미λ₯Ό νŒŒμ•…ν•˜κ³  μƒν˜Έμž‘μš©ν•  수 있게 λ„μ™€μ€λ‹ˆλ‹€.

[λ‹€μ–‘ν•œ role](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles#aria_role_types)이 μ‘΄μž¬ν•˜μ§€λ§Œ 이 μ€‘μ—μ„œ `aria-role='none'`(aria-role='presentation'κ³Ό 동일)은 **μš”μ†Œμ— μžˆλŠ” μ‹œλ§¨ν‹± 의미λ₯Ό μ œκ±°ν•˜λŠ” 데에 μ‚¬μš©ν•©λ‹ˆλ‹€.** 일반적으둜 <header>, <footer>, <article>κ³Ό 같은 μ‹œλ§¨ν‹± νƒœκ·Έμ™€λŠ” ν•¨κ»˜ μ‚¬μš©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ™œλƒν•˜λ©΄ μ΄λŸ¬ν•œ κ²½μš°μ—λŠ” λΉ„μ‹œλ§¨ν‹± νƒœκ·ΈμΈ <div>λ₯Ό λŒ€μ‹  μ‚¬μš©ν•˜λŠ” 것이 더 μ μ ˆν•˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€. λ‹€μŒ 두 가지 μƒν™©μ—μ„œ aria-role='none'을 μœ μš©ν•˜κ²Œ ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

#### 2-1. λ ˆκ±°μ‹œ λ§ˆν¬μ—…μ„ μˆ˜μ •ν•  λ•Œ

CSS λ ˆμ΄μ•„μ›ƒ κ΄€λ ¨ 속성듀이 λ°œμ „ν•˜κΈ° μ΄μ „μ—λŠ” νŽ˜μ΄μ§€ λ ˆμ΄μ•„μ›ƒμ„ κ΅¬μ„±ν•˜λŠ” λͺ©μ μœΌλ‘œ <table> νƒœκ·Έλ₯Ό λ§ˆν¬μ—…μ— 많이 μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€. 만일 μ΄λŸ¬ν•œ μ‚¬μ΄νŠΈλ₯Ό μœ μ§€λ³΄μˆ˜ν•΄μ•Ό ν•˜λŠ” 경우 aria-role='none'을 λΆ€μ—¬ν•˜μ—¬ 였용된 <table>의 μ‹œλ§¨ν‹± 의미λ₯Ό μ œκ±°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

#### 2-2. λ§ˆν¬μ—… κ΅¬μ‘°μ—μ„œ μ‹œλ§¨ν‹± 의미λ₯Ό μ œκ±°ν•˜λŠ” 것이 도움이 될 경우

였히렀 aria-role='none'으둜 μ‹œλ§¨ν‹± 의미λ₯Ό μ œκ±°ν•˜λŠ” 것이 접근성에 도움이 λ˜λŠ” κ²½μš°κ°€ μžˆμŠ΅λ‹ˆλ‹€. μ•„λž˜λŠ” role='tablist' λ§ˆν¬μ—… μ˜ˆμ‹œμž…λ‹ˆλ‹€.
<script src="https://gist.github.com/iyu88/05caa5e430a638fe465d75d9613b5c21.js?file=01_tablist_example.html"></script>
tablistλŠ” μžμ‹ μš”μ†Œλ‘œ λ°”λ‘œ role='tab'에 ν•΄λ‹Ήν•˜λŠ” μš”μ†Œκ°€ μ˜€λŠ” 것이 μ μ ˆν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ 경우 <li> μš”μ†ŒλŠ” μ‹œλ§¨ν‹± 의미λ₯Ό κ°€μ§ˆ ν•„μš”κ°€ μ—†κΈ° λ•Œλ¬Έμ— role='none'으둜 μ œκ±°ν•©λ‹ˆλ‹€.

<br />

## 3. 두 μ†μ„±μ˜ 곡톡점

μœ„ 두 속성은 **μƒν˜Έμž‘μš© κ°€λŠ₯ν•œ μš”μ†Œμ— μ„€μ •ν•˜λŠ” 것을 지양해야 ν•œλ‹€λŠ” 곡톡점**을 가지고 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” μ ‘κ·Όμ„± 보쑰 기술이 νŒŒμ•…ν•  수 μ—†λŠ” μš”μ†Œ(aria-hidden='true')λ‚˜ μ˜λ„μ μœΌλ‘œ μ‹œλ§¨ν‹± μ˜λ―Έκ°€ 제거된 μš”μ†Œ(aria-role='none')에 ν‚€λ³΄λ“œ focus ν˜Ήμ€ 마우슀 포인터 focusκ°€ κ°€λŠ₯ν•  경우, 각각 μ›Ή 접근성을 λ–¨μ–΄νŠΈλ¦¬κ³  [role κ΄€λ ¨ ν‘œμ€€ μŠ€νŽ™](https://www.w3.org/TR/wai-aria-1.2/#conflict_resolution_presentation_none)을 μ€€μˆ˜ν•˜μ§€ λͺ»ν•˜λŠ” λ¬Έμ œκ°€ 있기 λ•Œλ¬Έμž…λ‹ˆλ‹€.

<br />

[μ°Έκ³ ]

- [MDN - μ ‘κ·Όμ„± 트리](https://developer.mozilla.org/ko/docs/Glossary/Accessibility_tree)
- [MDN - aria-hidden](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-hidden)
- [MDN - WAI-ARIA Roles](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles)
- [MDN - ARIA: presentation role](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/presentation_role)
- [Know your ARIA: 'Hidden' vs 'None'](https://www.scottohara.me/blog/2018/05/05/hidden-vs-none.html)
Loading

0 comments on commit 99d9083

Please sign in to comment.