Skip to content

Latest commit

ย 

History

History
32 lines (25 loc) ยท 2.93 KB

Button.md

File metadata and controls

32 lines (25 loc) ยท 2.93 KB

Button

  • ๋ฒ„ํŠผ์€ form submit / dialog open / canceling an action / perform a delete operation ๋“ฑ๊ณผ ๊ฐ™์€ ์•ก์…˜ ๋˜๋Š” ์ด๋ฒคํŠธ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์œ„์ ฏ
  • ์ผ๋ฐ˜์ ์ธ ๋ฒ„ํŠผ ์œ„์ ฏ ์™ธ์—๋„ WAI-ARIA์—์„œ๋Š” 2๊ฐ€์ง€ ๋‹ค๋ฅธ ํƒ€์ž…์˜ ๋ฒ„ํŠผ์„ ์ง€์›ํ•œ๋‹ค.
    • Toggle Button
      • OFF / ON ๋‘ ๊ฐ€์ง€ ์ƒํƒœ๋ฅผ ๊ฐ–๋Š” ๋ฒ„ํŠผ
      • ํŠน์ • ๋ฒ„ํŠผ์ด ํ† ๊ธ€ ๋ฒ„ํŠผ์ž„์„ ๋ณด์กฐ ๊ธฐ์ˆ ์— ์•Œ๋ฆฌ๋ ค๋ฉด aria-pressed ์†์„ฑ์„ ์ง€์ •ํ•˜๋ฉด ๋œ๋‹ค.
      • aria-pressed๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ฃผ์˜ํ•ด์•ผ ํ•  ์ ์€ ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ ํ† ๊ธ€ ๋ฒ„ํŠผ์˜ ๋ ˆ์ด๋ธ”์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋„๋ก ํ•ด์ฃผ์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
      • ์˜ค๋””์˜ค ํ”Œ๋ ˆ์ด์–ด์—์„œ Mute ๋ฒ„ํŠผ์ด ์žˆ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ ํ•ด๋‹น ๋ฒ„ํŠผ์˜ aria-pressed=true์ธ ๊ฒฝ์šฐ ๋ ˆ์ด๋ธ” ์—ญ์‹œ Mute๋กœ ์œ ์ง€๋˜์–ด์•ผ ์Šคํฌ๋ฆฐ ๋ฆฌ๋” ์ž…์žฅ์—์„œ **โ€œMute toggle button pressedโ€**์˜ ํ˜•ํƒœ๋กœ ์ฝ์–ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
      • ๋งŒ์•ฝ ๋””์ž์ธ์ ์œผ๋กœ ๋ ˆ์ด๋ธ”์ด Mute โ†’ Unmute๋กœ ๋ณ€๊ฒฝ๋˜์–ด์•ผ ํ•œ๋‹ค๋ฉด aria-pressed ์†์„ฑ์„ ์ง€์ •ํ•  ํ•„์š”๋Š” ์—†๋‹ค.
    • Menu Button
      • Menu Button Pattern ์ฐธ๊ณ 
      • aria-haspopup ์†์„ฑ์ด menu ๋˜๋Š” true๋กœ ์„ค์ •๋œ ๋ฒ„ํŠผ์˜ ๊ฒฝ์šฐ ์Šคํฌ๋ฆฐ ๋ฆฌ๋”์— ์˜ํ•ด ๋ฉ”๋‰ด ๋ฒ„ํŠผ์œผ๋กœ ์ฝํžˆ๊ฒŒ ๋œ๋‹ค.

๋ฒ„ํŠผ์ด ํด๋ฆญ๋˜์—ˆ์„ ๋•Œ ์ˆ˜ํ–‰๋˜๋Š” ์•ก์…˜์€ ๋งํฌ์™€๋Š” ๋ถ„๋ช…ํžˆ ๋‹ค๋ฅด๋ฏ€๋กœ ์œ„์ ฏ์˜ ๋ชจ์–‘๊ณผ ์—ญํ• ์ด ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ๊ณผ ์ผ์น˜ํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋•Œ๋กœ ์‹œ๊ฐ์ ์œผ๋กœ๋Š” ๋งํฌ์˜ ํ˜•ํƒœ๋ฅผ ๊ฐ–์ง€๋งŒ ๋ฒ„ํŠผ์˜ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์กด์žฌํ•œ๋‹ค. ๊ทธ๋Ÿฌํ•œ ๊ฒฝ์šฐ์—๋Š” role=โ€buttonโ€์„ ๋ถ€์—ฌํ•˜๋ฉด ๋ณด์กฐ ๊ธฐ์ˆ  ์‚ฌ์šฉ์ž ์ž…์žฅ์—์„œ ํ•ด๋‹น ์š”์†Œ์˜ ๊ธฐ๋Šฅ์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋œ๋‹ค.

Keyboard

๋ฒ„ํŠผ์— ํฌ์ปค์Šค๊ฐ€ ์œ„์น˜ํ–ˆ์„ ๋•Œ ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•˜๋Š” ๋™์ž‘

  • Space / Enter โ†’ ๋ฒ„ํŠผ์— ๋ถ€์—ฌ๋˜์–ด ์žˆ๋Š” ์•ก์…˜์„ ์‹คํ–‰(ํ™œ์„ฑํ™”)ํ•œ๋‹ค.
  • ์ด๋•Œ ํ•ด๋‹น ๋ฒ„ํŠผ์ด ์ˆ˜ํ–‰ํ•˜๋Š” ์•ก์…˜์˜ ํƒ€์ž…์— ๋”ฐ๋ผ ํฌ์ปค์Šค๊ฐ€ ์„ค์ •๋˜์–ด์•ผ ํ•˜๋Š” ์กฐ๊ฑด์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค.
    • ๋ฒ„ํŠผ์ด Dialog๋ฅผ ์—ฌ๋Š” ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•œ๋‹ค๋ฉด ํ•ด๋‹น Dialog ๋‚ด๋ถ€๋กœ ํฌ์ปค์Šค๊ฐ€ ์ด๋™ํ•ด์•ผ ํ•œ๋‹ค.
    • ํŠน์ • ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ Dialog๋ฅผ ๋‹ซ๋Š” ๊ฒฝ์šฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ํฌ์ปค์Šค๋Š” Dialog๋ฅผ ์—ด๋„๋ก ํ•˜์˜€๋˜ ๋ฒ„ํŠผ์œผ๋กœ ์ด๋™์‹œ์ผœ์ฃผ์–ด์•ผ ํ•œ๋‹ค.

WAI-ARIA

  • <button>์€ ๊ธฐ๋ณธ์ ์œผ๋กœ role=โ€buttonโ€์ด ๋ถ€์—ฌ๋˜์–ด ์žˆ๋‹ค.
  • ๋ฒ„ํŠผ ๋‚ด์˜ ํ…์ŠคํŠธ ์ฝ˜ํ…์ธ ๊ฐ€ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๋ ˆ์ด๋ธ”๋กœ ๊ฐ„์ฃผ๋˜์ง€๋งŒ, aria-labelledby ๋˜๋Š” aria-label์„ ์ด์šฉํ•ด ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๋ฒ„ํŠผ์˜ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์„ค๋ช…์ด ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ aria-describedby๋ฅผ ์ด์šฉํ•ด ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฒ„ํŠผ์ด ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ์•ก์…˜์ด ์‚ฌ์šฉ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ์—๋Š” aria-disabled๋ฅผ true๋กœ ์„ค์ •ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.
  • ๋ฒ„ํŠผ์ด ํ† ๊ธ€ ๋ฒ„ํŠผ์ธ ๊ฒฝ์šฐ aria-pressed๋ฅผ ์ด์šฉํ•ด ON(true) / OFF(false) ์ƒํƒœ๋ฅผ ๋ช…์‹œํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค.