๋‹ด๊ณฐ๋†
minkyung.dev
๋‹ด๊ณฐ๋†
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (40)
    • ๐ŸŽ€ ํ”„๋กœ์ ํŠธ (6)
      • ์ธ์‚ฌ์ดํŠธ์•„์›ƒ (2)
      • ์บก์Šคํ†ค (2)
      • ์ž๋ฆฌ์–ด๋•Œ (1)
    • ๐Ÿ‘ฉ‍๐ŸŽค ํ”„๋ก ํŠธ์—”๋“œ (22)
      • react (5)
      • nextjs (4)
      • typescript (3)
      • javascript (4)
      • html (4)
      • css (2)
    • ๐Ÿงฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (2)
      • leetcode (1)
      • programmers (0)
    • ๐Ÿง  CS (1)
    • ๐ŸŽ ํšŒ๊ณ  (2)
    • private (0)
    • ๐Ÿง‘‍๐ŸŽค์ด์ง (0)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • github
  • react-router
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
  • leetcode
  • javascript
  • ESLint
  • ์ธํ”„๋ŸฐX๋””ํ”„๋งŒ
  • HTML
  • vsCode
  • ๋””ํ”„๋งŒ
  • react
  • Django
  • ์ธํ”„๋Ÿฐ

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
๋‹ด๊ณฐ๋†

minkyung.dev

์›น ์ ‘๊ทผ์„ฑ์„ ๊ณ ๋ คํ•˜์—ฌ ์ฝ˜ํ…์ธ  ์ˆจ๊ธฐ๊ธฐ - sr-only / off-screen / a11yHidden
๐Ÿ‘ฉ‍๐ŸŽค ํ”„๋ก ํŠธ์—”๋“œ/html

์›น ์ ‘๊ทผ์„ฑ์„ ๊ณ ๋ คํ•˜์—ฌ ์ฝ˜ํ…์ธ  ์ˆจ๊ธฐ๊ธฐ - sr-only / off-screen / a11yHidden

2022. 7. 12. 21:18
728x90
๋ฐ˜์‘ํ˜•

sr-only

์Šคํฌ๋ฆฐ๋ฆฌ๋”์—์„œ๋Š” ์ฝ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ํ™”๋ฉด์—์„œ๋Š” ๋ณด์ด์ง€ ์•Š๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์ฃผ๋กœ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ํด๋ž˜์Šค๋ช…์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

์™œ ์‚ฌ์šฉํ• ๊นŒ?

sr-only๋Š” screen reader-only๋ผ๋Š” ๋œป์œผ๋กœ ์ฃผ๋กœ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ํด๋ž˜์Šค๋ช…์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค

๋ถ€ํŠธ์ŠคํŠธ๋žฉ ๊ณต์‹๋ฌธ์„œ์— ๋”ฐ๋ฅด๋ฉด,

์Šคํฌ๋ฆฐ ๋ฆฌ๋”๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋ชจ๋“  input ์š”์†Œ์— label์„ ํฌํ•จํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์–ด๋ ค์›€์„ ๊ฒช์„ ๊ฒƒ์ด๋‹ค.
์ด๋Ÿฌํ•œ ์ธ๋ผ์ธ ํผ๋“ค์„ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” .sr-only ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ label์„ ๊ฐ์ถœ ์ˆ˜ ์žˆ๋‹ค.

 

์šฐ๋ฆฌ๋Š” ํ•ญ์ƒ ์Šคํฌ๋ฆฐ ๋ฆฌ๋”๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ์›น ์ ‘๊ทผ์„ฑ์„ ์‹ ๊ฒฝ์จ์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— label์„ ์•„์˜ˆ ์ง€์šฐ๋Š” ๊ฒƒ๋ณด๋‹ค ์ด๋Ÿฌํ•œ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ label์„ ๊ฐ์ถ”๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค.

์ฆ‰, ์šฐ๋ฆฌ๋Š” ์ ‘๊ทผ์„ฑ์„ ์œ„ํ•ด ์Šคํฌ๋ฆฐ๋ฆฌ๋”๊ฐ€ ์ฝ์„ ์ˆ˜ ์žˆ๋„๋ก ์ฝ˜ํ…์ธ ๋ฅผ ์ˆจ๊ฒจ์•ผํ•œ๋‹ค


์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ• ๊นŒ?

๋ถ€ํŠธ์ŠคํŠธ๋žฉ์—์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์Šคํƒ€์ผ๋ง์ด ๋‚ด์žฅ๋˜์–ด์žˆ๋‹ค

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0); /* ๊ตฌํ˜• ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ */
  clip-path: polygon(0 0, 0 0, 0 0); /* inset(50%) ์™€ ๋™์ผํ•œ ํ‘œํ˜„ */
  border: 0;
}

 

๐Ÿ– clip-path์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๊ธฐ
https://bennettfeely.com/clippy/

 

๐Ÿ– ์Œ์ˆ˜ ๋งˆ์ง„(Negative margin)์ด๋ž€?
https://min-kyung.tistory.com/82

 

๋˜ ๋‹ค๋ฅธ ํด๋ž˜์Šค๋ช…

๋„ค์ด๋ฒ„์—์„œ๋Š” ์ฃผ๋กœ blind๋ผ๋Š” ํด๋ž˜์Šค๋ช…์„ ์‚ฌ์šฉํ•œ๋‹ค.

๋„ค์ด๋ฒ„๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” blind

์ด ๋ฐ–์—๋„ off-screen, a11yHidden์ด๋ผ๋Š” ํด๋ž˜์Šค๋ช…์„ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•œ๋‹ค

 

๋‚ด์šฉ์„ ์ˆจ๊ธฐ๋Š” ๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•

1. display: none, visibility: hidden

  • ๋ชจ๋“  ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๋‚ด์šฉ์„ ๊ฐ์ถ”๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค
  • ํŽ˜์ด์ง€์˜ ์‹œ๊ฐ์ ์ธ ๋ถ€๋ถ„์—์„œ ์ง€์›Œ์ง€๊ณ  ์Šคํฌ๋ฆฐ๋ฆฌ๋”์—๊ฒŒ ๋ฌด์‹œ๋œ๋‹ค
  • ์Šคํฌ๋ฆฐ๋ฆฌ๋”๊ฐ€ ์ฝ๊ฒŒ ํ•˜๋ ค๋ฉด ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋œ๋‹ค
  • ํ•˜์ง€๋งŒ ๋ชจ๋“  ์‚ฌ์šฉ์ž์—๊ฒŒ ์•ˆ๋ณด์ด๊ฒŒ ํ•  ๊ฒฝ์šฐ๋ผ๋ฉด ์‚ฌ์šฉํ•ด๋„ ๋œ๋‹ค

 

2. hidden ์†์„ฑ

html hidden ์†์„ฑ์€ ์ƒ๋Œ€์ ์œผ๋กœ ์ตœ์‹  ๋ฌธ๋ฒ•์ด์—ฌ์„œ ์˜ค๋ž˜๋œ ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค

hidden ์ง€์› ๋ธŒ๋ผ์šฐ์ €

์›๋ž˜๋Š” IE 11์—์„œ ์ง€์›์•ˆํ–ˆ๋Š”๋ฐ ์ด์ œ ์ง€์›ํ•œ๋‹ค

  • ์ง€์›ํ•˜๋Š” ๋ธŒ๋ผ์šฐ์ €์˜ ๊ฒฝ์šฐ, display:none๊ณผ ๋™์ผํ•˜๊ฒŒ ๊ธฐ๋Šฅํ•œ๋‹ค
  • ๋ชจ๋“  ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์ด์ง€ ์•Š๋Š”๋‹ค

 

3. width: 0px, height: 0px

  • width์™€ height๋ฅผ ๊ฐ–๊ณ  ์žˆ์ง€ ์•Š๋Š” ์š”์†Œ๋“ค์€ ํŽ˜์ด์ง€์—์„œ ์ œ๊ฑฐ๋˜์–ด ๋Œ€๋ถ€๋ถ„์˜ ์Šคํฌ๋ฆฐ๋ฆฌ๋”๊ฐ€ ์ฝ์ง€ ์•Š๋Š”๋‹ค
    • ์Šคํฌ๋ฆฐ๋ฆฌ๋”๊ฐ€ ์ฝ๊ฒŒ ํ•˜๋ ค๋ฉด ์š”์†Œ๋ฅผ 0ํ”ฝ์…€๋กœ ์‚ฌ์ด์ฆˆ๋ฅผ ์กฐ์ ˆํ•˜๋ฉด ์•ˆ๋œ๋‹ค
  • ํ•˜์ง€๋งŒ font-size: 0px ๋˜๋Š” line-height:0์˜ ๊ฒฝ์šฐ, ์Šคํฌ๋ฆฐ์˜ ์„ธ๋กœ ๊ณต๊ฐ„์„ ๊ฐ–๊ธฐ๋•Œ๋ฌธ์— ์Šคํฌ๋ฆฐ๋ฆฌ๋”๊ฐ€ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค

์œ„์˜ ๋ฐฉ๋ฒ• ๋ชจ๋‘ ์•…์˜์ ์ด๋ผ๊ณ  ํ•ด์„๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฒ€์ƒ‰ ์—”์ง„์— ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค

 

4. text-indent: -10000px

  • ์ปจํ…์ธ ๋ฅผ ์™ผ์ชฝ์œผ๋กœ 10000ํ”ฝ์…€ ์˜ฎ๊ฒจ์„œ ์Šคํฌ๋ฆฐ์— ๋ณด์ด๊ฒŒ ํ•˜์ง€ ์•Š๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค
  • ์Šคํฌ๋ฆฐ ๋ฆฌ๋”๋“ค์€ ํ•ด๋‹น ํ…์ŠคํŠธ๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค
  • ํ•˜์ง€๋งŒ ๋งํฌ, ํผ ์ปจํŠธ๋กค, ํฌ์ปค์Šคํ•  ์ˆ˜ ์žˆ๋Š” ์š”์†Œ๋“ค์— ์ด๋Ÿฐ ์Šคํƒ€์ผ์„ ์ ์šฉํ•œ๋‹ค๋ฉด, ์š”์†Œ์— ํฌ์ปค์Šค๊ฐ€ ๊ฐ€์ง€๋งŒ ํŽ˜์ด์ง€์—๋Š” ๋ณด์ด์ง€ ์•Š์•„ ํ‚ค๋ณด๋“œ ์‚ฌ์šฉ์ž๋“ค์ด ํ˜ผ๋ž€์Šค๋Ÿฌ์šธ ์ˆ˜ ์žˆ๋‹ค
  • top: -9999px์„ ์ด์šฉํ•ด์„œ ์ฝ˜ํ…์ธ ๋ฅผ ์ˆจ๊ธฐ๋Š” ๋ฐฉ๋ฒ•๋„ ์ด์™€ ์œ ์‚ฌํ•œ๋ฐ ์Šคํฌ๋ฆฐ๋ฆฌ๋”๋Š” ์ฝ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ํฌ์ปค์Šค๊ฐ€ ๊ฐ€๋ฉด ํ•ด๋‹น top ์ขŒํ‘œ๋กœ ์ด๋™ํ•˜๋ คํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์Šคํฌ๋กค์„ ๋งจ ์œ„๋กœ ์˜ฌ๋ฆฌ๊ฒŒ ๋œ๋‹ค
    • top: -9999px ์„ ์ด์šฉํ–ˆ์„ ๋•Œ ์Šคํฌ๋กค์ด ์œ„๋กœ ์˜ฌ๋ผ๊ฐ€๋Š” ํ˜„์ƒ์„ ๋ณด์—ฌ์ฃผ๋Š” ๋™์˜์ƒ ๋งํฌ

 

5. sr-only

๊ฐ€์žฅ ์ถ”์ฒœํ•˜๋Š” ์Šคํƒ€์ผ ๋ฐฉ์‹์œผ๋กœ ์Šคํฌ๋ฆฐ๋ฆฌ๋”๊ฐ€ ์ฝ์„ ์ˆ˜ ์žˆ์œผ๋ฉด์„œ ์‹œ๊ฐ์ ์œผ๋กœ๋Š” ์ˆจ๊ธฐ๋Š” ๋ฐฉ์‹์ด๋‹ค.

 

728x90
๋ฐ˜์‘ํ˜•

'๐Ÿ‘ฉโ€๐ŸŽค ํ”„๋ก ํŠธ์—”๋“œ > html' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

<main> / <section> vs <article>  (0) 2022.07.12
HTML5์˜ ์ฝ˜ํ…์ธ  ๋ชจ๋ธ(Content Models)  (0) 2022.07.12
HTML ๊ธฐ๋ณธ ํ‹€์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž - <!DOCTYPE> / <head> / <meta> / <title>  (0) 2022.07.11
    '๐Ÿ‘ฉ‍๐ŸŽค ํ”„๋ก ํŠธ์—”๋“œ/html' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • <main> / <section> vs <article>
    • HTML5์˜ ์ฝ˜ํ…์ธ  ๋ชจ๋ธ(Content Models)
    • HTML ๊ธฐ๋ณธ ํ‹€์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž - <!DOCTYPE> / <head> / <meta> / <title>
    ๋‹ด๊ณฐ๋†
    ๋‹ด๊ณฐ๋†

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”