Skip to content

Latest commit

Β 

History

History
30 lines (22 loc) Β· 2.42 KB

Menu Button.md

File metadata and controls

30 lines (22 loc) Β· 2.42 KB

Menu Button

메뉴 λ²„νŠΌμ€ 문자 κ·ΈλŒ€λ‘œ 메뉴λ₯Ό μ—¬λŠ” λ²„νŠΌμ„ μ˜λ―Έν•œλ‹€.
λ²„νŠΌμ΄ ν™œμ„±ν™”λ˜λ©΄ 메뉴가 ν‘œμ‹œλœλ‹€λŠ” 것을 λ‚˜νƒ€λ‚΄κΈ° μœ„ν•΄ ↓가 ν•¨κ»˜ 배치된 λ²„νŠΌ μŠ€νƒ€μΌμ΄ λ§Žλ‹€.

WAI-ARIA

  • role=button
    • role=button이 λΆ€μ—¬λœ μš”μ†Œμ—λŠ” aria-haspopup이 menu λ˜λŠ” true둜 μ„€μ •λ˜μ–΄μ•Ό ν•œλ‹€.
  • 메뉴가 열리면 aria-expandedκ°€ true둜 μ„€μ •λ˜μ–΄μ•Ό ν•œλ‹€.
  • 메뉴 ν•­λͺ©λ“€μ„ ν¬ν•¨ν•˜κ³  μžˆλŠ” μ»¨ν…Œμ΄λ„ˆ μš”μ†Œμ—λŠ” role=”menu”
  • (선택) aria-controlsλ₯Ό 톡해 μ œμ–΄ν•˜λŠ” μš”μ†Œμ˜ IDλ₯Ό 지정할 수 μžˆλ‹€.

aria-descendant

role: combobox, grid, listbox, menu, menubar, radiogroup, tablist, tree, treegrid

  • 이 속성은 일반적으둜 μ»¨ν…Œμ΄λ„ˆ μš”μ†Œμ— 배치되며, 이λ₯Ό 톡해 슀크린 λ¦¬λ”λŠ” ν™œμ„±ν™”λ˜μ–΄μ•Ό ν•˜λŠ” μš”μ†Œλ₯Ό 식별할 수 있게 λœλ‹€.
  • μ‹€μ œ DOM 포컀슀λ₯Ό μ΄λ™ν•˜μ§€λŠ” μ•ŠμœΌλ©°, μ»¨νŠΈλ‘€ν•œ μš”μ†Œμ— ν¬μ»€μŠ€κ°€ μœ μ§€λ˜κ³ , 컨트둀 μš”μ†Œμ˜ aria-activedescendant 속성이 λ‚΄λΆ€μ μœΌλ‘œ 포컀슀 된 μš”μ†Œμ˜ ID둜 섀정될 뿐이닀.
  • μ‹€μ œ DOM ν¬μ»€μŠ€κ°€ μ μš©λ˜μ§€λŠ” μ•Šμ•˜κ³  focus μ΄λ²€νŠΈκ°€ λ°œμƒν•˜μ§€ μ•Šμ•˜κΈ° λ•Œλ¬Έμ— :focus둜 μŠ€νƒ€μΌμ„ μ μš©ν•  수 μ—†μœΌλ©°, onActiveDescendantChanged μ½œλ°±μ„ μ œκ³΅ν•˜μ—¬ ν™œμ„±ν™”λœ μžμ†μ΄ 변경될 λ•Œ ν•„μš”ν•œ μŠ€νƒ€μΌμ΄λ‚˜ 기타 λ‘œμ§μ„ μ²˜λ¦¬ν•˜κ²Œλ” ν•œλ‹€.
  • 이 속성이 μ œλŒ€λ‘œ λ™μž‘ν•˜λ„λ‘ ν•˜λ €λ©΄ λ„€ 가지 μž‘μ—…μ„ μˆ˜ν–‰ν•΄μ£Όμ–΄μ•Ό ν•œλ‹€.
    • 쑰상 μš”μ†Œ(μ»¨ν…Œμ΄λ„ˆ)에 aria-activedescendantλ₯Ό μΆ”κ°€ν•΄μ£Όμ–΄μ•Ό ν•˜λŠ”λ° 이 μš”μ†ŒλŠ” λ³΅ν•©μœ„μ ― (composite widget)일 수 μžˆλ‹€. λ§Œμ•½ μš”μ†Œκ°€ 볡합 μœ„μ ―μ΄ μ•„λ‹Œ 경우 textbox, group λ˜λŠ” application role이 λΆ€μ—¬λ˜μ–΄ μžˆμ–΄μ•Ό ν•œλ‹€.
    • 이 쑰상 μš”μ†Œλ₯Ό focusableν•œ μš”μ†Œλ‘œ λ§Œλ“€μ–΄μ£Όμ–΄μ•Ό ν•œλ‹€.
    • 쑰상 μš”μ†Œμ˜ μžμ† μš”μ†Œ 쀑 ν™œμ„±ν™” 될 μš”μ†Œμ˜ idλ₯Ό 쑰상 μš”μ†Œμ˜ aria-activedescendant에 ν• λ‹Ήν•΄μ£Όμ–΄μ•Ό ν•œλ‹€.
    • μ‚¬μš©μžκ°€ μ‹œκ°μ μœΌλ‘œ 차이λ₯Ό λŠλ‚„ 수 μžˆλ„λ‘ ν™œμ„±ν™” 된 ν•­λͺ©μ— μŠ€νƒ€μΌμ„ 지정해 μ£Όμ–΄μ•Ό ν•œλ‹€.

DOM Focus

  • ν‚€λ³΄λ“œ μž…λ ₯을 μ‚¬μš©ν•˜μ—¬ 포컀슀λ₯Ό μ΄λ™ν•˜λŠ” 경우 포컀슀λ₯Ό 받을 μš”μ†Œμ—μ„œ 직접 .focus()λ₯Ό ν˜ΈμΆœν•œλ‹€.
  • κ·Έ κ²°κ³Ό document.activeElementκ°€ .focus()λ₯Ό ν˜ΈμΆœν•œ μš”μ†Œλ‘œ μ„€μ •λ˜κ³ , :focus 및 :focus-within을 톡해 ν•„μš”ν•œ μŠ€νƒ€μΌμ„ μ μš©ν•˜κ²Œ λœλ‹€.